Skip to content

Performance Random Performance

github-actions[bot] edited this page May 8, 2026 · 12 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,700,000 Fastest Poor Minimal standard LCG; fails spectral tests and exhibits lattice artifacts beyond small dimensions.
WaveSplatRandom 1,283,400,000 Fastest Experimental Single-word chaotic generator; author notes period 2^64 but provides no formal test results—treat as experimental.
BlastCircuitRandom 1,054,900,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,052,300,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,200,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 897,900,000 Fast Excellent PCG XSH RR 64/32 variant; passes TestU01 BigCrush and PractRand in published results. O'Neill 2014
XoroShiroRandom 754,700,000 Fast Very Good xoshiro128** variant; authors recommend for general-purpose use and report clean BigCrush performance with jump functions. Blackman & Vigna 2019
IllusionFlow 754,500,000 Fast Excellent Hybridized PCG + xorshift design; upstream PractRand 64GB passes with no anomalies per author.
RomuDuo 750,100,000 Fast Very Good ROMU family member (RomuDuo); authors report strong BigCrush results with minor low-bit weaknesses in some rotations.
StormDropRandom 705,200,000 Moderate Excellent 20-word ARX generator derived from SHISHUA; author reports excellent PractRand performance and long periods.
XorShiftRandom 602,100,000 Moderate Fair Classic 32-bit xorshift; known to fail portions of TestU01 and PractRand, acceptable for lightweight effects only. Marsaglia 2003
WyRandom 440,500,000 Slow Very Good Wyhash-based generator; published testing shows it clears BigCrush/PractRand with wide seed coverage. Wang Yi 2019
SquirrelRandom 414,000,000 Slow Good Hash-based generator built on Squirrel3; good equidistribution for table lookups but not extensively tested beyond moderate ranges. Squirrel Eiserloh
PhotonSpinRandom 261,100,000 Very Slow Excellent SHISHUA-inspired generator; independent testing (PractRand 128GB) by author indicates excellent distribution properties.
UnityRandom 87,600,000 Very Slow Fair Mirrors UnityEngine.Random (Xorshift196 + additive); suitable for legacy compatibility but not high-stakes simulation. Unity Random Internals
SystemRandom 64,700,000 Very Slow Poor Thin wrapper over System.Random; inherits same LCG weaknesses and fails modern statistical batteries. System.Random considered harmful
DotNetRandom 55,900,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 785,200,000 538,800,000 1,323,700,000 184,300,000 296,300,000 582,900,000 498,700,000
WaveSplatRandom 787,300,000 528,500,000 1,283,400,000 184,300,000 297,900,000 529,000,000 458,200,000
BlastCircuitRandom 788,200,000 537,400,000 1,054,900,000 183,800,000 293,200,000 479,700,000 421,200,000
SplitMix64 795,900,000 537,200,000 1,052,300,000 184,400,000 297,700,000 482,500,000 439,100,000
FlurryBurstRandom 767,800,000 526,500,000 923,200,000 182,300,000 293,100,000 449,800,000 404,100,000
PcgRandom 249,800,000 527,300,000 897,900,000 181,000,000 274,700,000 447,700,000 405,000,000
XoroShiroRandom 761,000,000 359,000,000 754,700,000 157,900,000 192,400,000 422,100,000 376,900,000
IllusionFlow 779,300,000 529,200,000 754,500,000 183,000,000 281,600,000 439,200,000 390,000,000
RomuDuo 784,600,000 359,400,000 750,100,000 156,100,000 188,700,000 437,700,000 384,600,000
StormDropRandom 776,600,000 523,600,000 705,200,000 180,600,000 252,400,000 393,500,000 356,700,000
XorShiftRandom 783,300,000 534,100,000 602,100,000 184,100,000 283,200,000 474,500,000 383,500,000
WyRandom 749,500,000 363,000,000 440,500,000 159,000,000 185,300,000 290,000,000 277,800,000
SquirrelRandom 756,300,000 382,700,000 414,000,000 158,800,000 197,800,000 355,500,000 309,500,000
PhotonSpinRandom 713,300,000 220,800,000 261,100,000 119,900,000 115,800,000 217,600,000 214,200,000
UnityRandom 628,900,000 76,700,000 87,600,000 59,700,000 38,800,000 81,800,000 81,900,000
SystemRandom 146,200,000 145,700,000 64,700,000 131,300,000 138,600,000 58,700,000 57,800,000
DotNetRandom 544,600,000 53,100,000 55,900,000 44,700,000 26,700,000 53,400,000 51,700,000

Clone this wiki locally