Skip to content

Performance Random Performance

github-actions[bot] edited this page Apr 29, 2026 · 13 revisions

Random Number Generator Performance Benchmarks

Auto-generated via RandomPerformanceTests.Benchmark. Run the test to refresh these summary and detail tables.

Summary (fastest first)

Random NextUint (ops/s) Speed Quality Notes
LinearCongruentialGenerator 1,323,600,000 Fastest Poor Minimal standard LCG; fails spectral tests and exhibits lattice artifacts beyond small dimensions.
WaveSplatRandom 1,171,900,000 Very Fast Experimental Single-word chaotic generator; author notes period 2^64 but provides no formal test results—treat as experimental.
BlastCircuitRandom 1,054,000,000 Very Fast Good Empirical PractRand testing to 32GB shows strong diffusion; designed as a chaotic ARX mixer rather than a proven statistically optimal generator.
SplitMix64 1,044,400,000 Very Fast Very Good Well-known SplitMix64 mixer; passes TestU01 BigCrush and PractRand up to large data sizes in literature. Vigna 2014
FlurryBurstRandom 923,800,000 Fast Excellent Six-word ARX-style generator tuned for all-around use; passes TestU01 BigCrush per upstream reference implementation. Will Stafford Parsons (wileylooper)
PcgRandom 918,200,000 Fast Excellent PCG XSH RR 64/32 variant; passes TestU01 BigCrush and PractRand in published results. O'Neill 2014
IllusionFlow 844,500,000 Fast Excellent Hybridized PCG + xorshift design; upstream PractRand 64GB passes with no anomalies per author.
XoroShiroRandom 756,600,000 Fast Very Good xoshiro128** variant; authors recommend for general-purpose use and report clean BigCrush performance with jump functions. Blackman & Vigna 2019
RomuDuo 746,400,000 Fast Very Good ROMU family member (RomuDuo); authors report strong BigCrush results with minor low-bit weaknesses in some rotations.
StormDropRandom 712,800,000 Moderate Excellent 20-word ARX generator derived from SHISHUA; author reports excellent PractRand performance and long periods.
XorShiftRandom 594,200,000 Moderate Fair Classic 32-bit xorshift; known to fail portions of TestU01 and PractRand, acceptable for lightweight effects only. Marsaglia 2003
WyRandom 446,800,000 Slow Very Good Wyhash-based generator; published testing shows it clears BigCrush/PractRand with wide seed coverage. Wang Yi 2019
SquirrelRandom 407,100,000 Slow Good Hash-based generator built on Squirrel3; good equidistribution for table lookups but not extensively tested beyond moderate ranges. Squirrel Eiserloh
PhotonSpinRandom 260,100,000 Very Slow Excellent SHISHUA-inspired generator; independent testing (PractRand 128GB) by author indicates excellent distribution properties.
UnityRandom 86,400,000 Very Slow Fair Mirrors UnityEngine.Random (Xorshift196 + additive); suitable for legacy compatibility but not high-stakes simulation. Unity Random Internals
SystemRandom 64,100,000 Very Slow Poor Thin wrapper over System.Random; inherits same LCG weaknesses and fails modern statistical batteries. System.Random considered harmful
DotNetRandom 57,200,000 Very Slow Poor Linear congruential generator (mod 2^31) with known correlation failures; unsuitable for high-quality simulations. System.Random considered harmful

Detailed Metrics

Random NextBool Next NextUint NextFloat NextDouble NextUint (Range) NextInt (Range)
LinearCongruentialGenerator 783,800,000 833,800,000 1,323,600,000 182,100,000 375,300,000 583,500,000 499,500,000
WaveSplatRandom 784,400,000 807,500,000 1,171,900,000 181,900,000 405,500,000 530,000,000 461,200,000
BlastCircuitRandom 775,200,000 703,900,000 1,054,000,000 181,500,000 360,500,000 476,600,000 422,300,000
SplitMix64 737,500,000 705,400,000 1,044,400,000 181,900,000 372,700,000 482,400,000 441,800,000
FlurryBurstRandom 766,300,000 678,200,000 923,800,000 181,300,000 336,700,000 449,700,000 399,800,000
PcgRandom 773,200,000 665,800,000 918,200,000 181,600,000 313,100,000 450,000,000 406,300,000
IllusionFlow 774,400,000 629,900,000 844,500,000 174,800,000 294,200,000 439,100,000 391,200,000
XoroShiroRandom 759,600,000 583,400,000 756,600,000 164,600,000 252,100,000 420,900,000 376,000,000
RomuDuo 777,000,000 586,100,000 746,400,000 164,800,000 252,300,000 438,900,000 390,400,000
StormDropRandom 755,200,000 569,300,000 712,800,000 180,600,000 270,300,000 396,400,000 359,100,000
XorShiftRandom 785,800,000 583,100,000 594,200,000 181,600,000 285,900,000 434,400,000 387,700,000
WyRandom 739,600,000 385,100,000 446,800,000 164,200,000 183,800,000 291,200,000 277,500,000
SquirrelRandom 742,300,000 405,300,000 407,100,000 169,800,000 199,100,000 329,600,000 310,900,000
PhotonSpinRandom 693,800,000 247,600,000 260,100,000 118,900,000 119,200,000 209,800,000 203,300,000
UnityRandom 632,700,000 83,600,000 86,400,000 61,400,000 40,800,000 80,400,000 81,100,000
SystemRandom 142,100,000 145,400,000 64,100,000 130,800,000 130,900,000 59,000,000 59,000,000
DotNetRandom 518,800,000 54,400,000 57,200,000 46,100,000 26,900,000 53,800,000 52,800,000

Clone this wiki locally