Skip to content

Performance Random Performance

github-actions[bot] edited this page Apr 21, 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,338,500,000 Fastest Poor Minimal standard LCG; fails spectral tests and exhibits lattice artifacts beyond small dimensions.
WaveSplatRandom 1,311,200,000 Fastest Experimental Single-word chaotic generator; author notes period 2^64 but provides no formal test results—treat as experimental.
SplitMix64 1,065,500,000 Very Fast Very Good Well-known SplitMix64 mixer; passes TestU01 BigCrush and PractRand up to large data sizes in literature. Vigna 2014
BlastCircuitRandom 1,063,400,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.
FlurryBurstRandom 943,000,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 919,000,000 Fast Excellent PCG XSH RR 64/32 variant; passes TestU01 BigCrush and PractRand in published results. O'Neill 2014
IllusionFlow 849,900,000 Fast Excellent Hybridized PCG + xorshift design; upstream PractRand 64GB passes with no anomalies per author.
RomuDuo 759,500,000 Fast Very Good ROMU family member (RomuDuo); authors report strong BigCrush results with minor low-bit weaknesses in some rotations.
XoroShiroRandom 742,500,000 Fast Very Good xoshiro128** variant; authors recommend for general-purpose use and report clean BigCrush performance with jump functions. Blackman & Vigna 2019
StormDropRandom 721,400,000 Moderate Excellent 20-word ARX generator derived from SHISHUA; author reports excellent PractRand performance and long periods.
XorShiftRandom 601,900,000 Moderate Fair Classic 32-bit xorshift; known to fail portions of TestU01 and PractRand, acceptable for lightweight effects only. Marsaglia 2003
WyRandom 452,700,000 Slow Very Good Wyhash-based generator; published testing shows it clears BigCrush/PractRand with wide seed coverage. Wang Yi 2019
SquirrelRandom 414,300,000 Slow Good Hash-based generator built on Squirrel3; good equidistribution for table lookups but not extensively tested beyond moderate ranges. Squirrel Eiserloh
PhotonSpinRandom 268,800,000 Slow Excellent SHISHUA-inspired generator; independent testing (PractRand 128GB) by author indicates excellent distribution properties.
UnityRandom 87,100,000 Very Slow Fair Mirrors UnityEngine.Random (Xorshift196 + additive); suitable for legacy compatibility but not high-stakes simulation. Unity Random Internals
SystemRandom 65,600,000 Very Slow Poor Thin wrapper over System.Random; inherits same LCG weaknesses and fails modern statistical batteries. System.Random considered harmful
DotNetRandom 56,600,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 791,900,000 835,000,000 1,338,500,000 184,400,000 381,500,000 589,100,000 505,400,000
WaveSplatRandom 792,100,000 819,300,000 1,311,200,000 184,500,000 411,000,000 532,900,000 464,100,000
SplitMix64 794,900,000 741,600,000 1,065,500,000 183,400,000 352,600,000 488,100,000 445,800,000
BlastCircuitRandom 785,000,000 656,700,000 1,063,400,000 182,600,000 360,100,000 486,400,000 424,300,000
FlurryBurstRandom 786,000,000 649,300,000 943,000,000 180,500,000 287,500,000 455,200,000 408,400,000
PcgRandom 783,900,000 654,600,000 919,000,000 184,300,000 318,600,000 454,500,000 410,100,000
IllusionFlow 778,300,000 640,900,000 849,900,000 178,100,000 296,300,000 446,000,000 395,800,000
RomuDuo 786,300,000 590,000,000 759,500,000 167,200,000 254,700,000 443,500,000 396,200,000
XoroShiroRandom 766,900,000 563,100,000 742,500,000 166,500,000 243,800,000 426,700,000 381,400,000
StormDropRandom 758,200,000 531,300,000 721,400,000 182,100,000 258,900,000 394,700,000 338,100,000
XorShiftRandom 786,200,000 593,500,000 601,900,000 184,300,000 288,000,000 440,400,000 393,100,000
WyRandom 751,000,000 387,500,000 452,700,000 166,400,000 189,300,000 297,400,000 281,700,000
SquirrelRandom 753,500,000 409,100,000 414,300,000 172,300,000 202,200,000 328,800,000 313,300,000
PhotonSpinRandom 708,700,000 256,400,000 268,800,000 121,100,000 123,500,000 216,300,000 210,800,000
UnityRandom 647,000,000 85,000,000 87,100,000 62,200,000 41,500,000 81,700,000 82,400,000
SystemRandom 145,300,000 147,400,000 65,600,000 131,500,000 140,100,000 60,100,000 60,500,000
DotNetRandom 522,600,000 54,600,000 56,600,000 46,200,000 27,000,000 53,900,000 54,000,000

Clone this wiki locally