Skip to content

Performance Random Performance

github-actions[bot] edited this page Dec 30, 2025 · 4 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,309,300,000 Fastest Poor Minimal standard LCG; fails spectral tests and exhibits lattice artifacts beyond small dimensions.
WaveSplatRandom 1,159,700,000 Very Fast Experimental Single-word chaotic generator; author notes period 2^64 but provides no formal test results—treat as experimental.
SplitMix64 1,048,800,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,037,300,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 938,900,000 Fast Excellent Hybrid Xoshiro/PCG variant tuned for all-around use; passes TestU01 BigCrush per upstream reference implementation. Blackman & Vigna 2019
PcgRandom 905,200,000 Fast Excellent PCG XSH RR 64/32 variant; passes TestU01 BigCrush and PractRand in published results. O'Neill 2014
IllusionFlow 882,600,000 Fast Excellent Hybridized PCG + xorshift design; upstream PractRand 64GB passes with no anomalies per author.
RomuDuo 757,300,000 Fast Very Good ROMU family member (RomuDuo); authors report strong BigCrush results with minor low-bit weaknesses in some rotations.
XoroShiroRandom 755,300,000 Fast Very Good xoshiro128** variant; authors recommend for general-purpose use and report clean BigCrush performance with jump functions. Blackman & Vigna 2019
StormDropRandom 699,700,000 Moderate Excellent 20-word ARX generator derived from SHISHUA; author reports excellent PractRand performance and long periods.
XorShiftRandom 593,700,000 Moderate Fair Classic 32-bit xorshift; known to fail portions of TestU01 and PractRand, acceptable for lightweight effects only. Marsaglia 2003
WyRandom 448,600,000 Slow Very Good Wyhash-based generator; published testing shows it clears BigCrush/PractRand with wide seed coverage. Wang Yi 2019
SquirrelRandom 401,900,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,200,000 Very Slow Excellent SHISHUA-inspired generator; independent testing (PractRand 128GB) by author indicates excellent distribution properties.
UnityRandom 84,200,000 Very Slow Fair Mirrors UnityEngine.Random (Xorshift196 + additive); suitable for legacy compatibility but not high-stakes simulation. Unity Random Internals
SystemRandom 63,500,000 Very Slow Poor Thin wrapper over System.Random; inherits same LCG weaknesses and fails modern statistical batteries. System.Random considered harmful
DotNetRandom 58,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 796,900,000 832,800,000 1,309,300,000 210,800,000 408,400,000 586,000,000 502,500,000
WaveSplatRandom 778,800,000 792,200,000 1,159,700,000 204,400,000 375,300,000 515,100,000 454,700,000
SplitMix64 776,700,000 751,900,000 1,048,800,000 210,200,000 367,100,000 479,400,000 439,800,000
BlastCircuitRandom 767,700,000 704,200,000 1,037,300,000 207,800,000 330,500,000 468,300,000 416,200,000
FlurryBurstRandom 775,300,000 642,400,000 938,900,000 210,500,000 332,300,000 446,500,000 406,900,000
PcgRandom 780,500,000 656,800,000 905,200,000 205,900,000 334,400,000 450,400,000 408,500,000
IllusionFlow 778,400,000 631,100,000 882,600,000 202,800,000 320,100,000 442,100,000 391,700,000
RomuDuo 773,500,000 581,000,000 757,300,000 187,500,000 251,600,000 439,100,000 376,300,000
XoroShiroRandom 762,900,000 584,600,000 755,300,000 186,000,000 249,600,000 420,200,000 372,300,000
StormDropRandom 754,700,000 548,500,000 699,700,000 206,400,000 248,700,000 398,000,000 353,200,000
XorShiftRandom 771,000,000 580,900,000 593,700,000 208,300,000 246,400,000 437,500,000 380,900,000
WyRandom 744,500,000 384,500,000 448,600,000 181,800,000 185,600,000 288,100,000 276,700,000
SquirrelRandom 766,500,000 388,600,000 401,900,000 192,500,000 197,600,000 355,700,000 330,700,000
PhotonSpinRandom 693,700,000 247,300,000 260,200,000 129,200,000 113,400,000 212,200,000 201,800,000
UnityRandom 636,500,000 82,000,000 84,200,000 63,500,000 39,600,000 78,900,000 78,600,000
SystemRandom 140,300,000 145,000,000 63,500,000 129,300,000 135,600,000 58,500,000 58,200,000
DotNetRandom 538,000,000 55,200,000 58,200,000 48,300,000 27,600,000 53,500,000 54,100,000

Clone this wiki locally