Skip to content

Performance Random Performance

github-actions[bot] edited this page Jan 12, 2026 · 5 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,333,700,000 Fastest Poor Minimal standard LCG; fails spectral tests and exhibits lattice artifacts beyond small dimensions.
WaveSplatRandom 1,323,500,000 Fastest Experimental Single-word chaotic generator; author notes period 2^64 but provides no formal test results—treat as experimental.
BlastCircuitRandom 1,068,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,042,200,000 Very Fast Very Good Well-known SplitMix64 mixer; passes TestU01 BigCrush and PractRand up to large data sizes in literature. Vigna 2014
FlurryBurstRandom 947,500,000 Fast Excellent Hybrid Xoshiro/PCG variant tuned for all-around use; passes TestU01 BigCrush per upstream reference implementation. Blackman & Vigna 2019
PcgRandom 916,300,000 Fast Excellent PCG XSH RR 64/32 variant; passes TestU01 BigCrush and PractRand in published results. O'Neill 2014
IllusionFlow 891,400,000 Fast Excellent Hybridized PCG + xorshift design; upstream PractRand 64GB passes with no anomalies per author.
XoroShiroRandom 762,900,000 Fast Very Good xoshiro128** variant; authors recommend for general-purpose use and report clean BigCrush performance with jump functions. Blackman & Vigna 2019
RomuDuo 757,900,000 Fast Very Good ROMU family member (RomuDuo); authors report strong BigCrush results with minor low-bit weaknesses in some rotations.
StormDropRandom 713,500,000 Moderate Excellent 20-word ARX generator derived from SHISHUA; author reports excellent PractRand performance and long periods.
XorShiftRandom 599,800,000 Moderate Fair Classic 32-bit xorshift; known to fail portions of TestU01 and PractRand, acceptable for lightweight effects only. Marsaglia 2003
WyRandom 440,100,000 Slow Very Good Wyhash-based generator; published testing shows it clears BigCrush/PractRand with wide seed coverage. Wang Yi 2019
SquirrelRandom 409,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 260,200,000 Very Slow Excellent SHISHUA-inspired generator; independent testing (PractRand 128GB) by author indicates excellent distribution properties.
UnityRandom 86,800,000 Very Slow Fair Mirrors UnityEngine.Random (Xorshift196 + additive); suitable for legacy compatibility but not high-stakes simulation. Unity Random Internals
SystemRandom 64,200,000 Very Slow Poor Thin wrapper over System.Random; inherits same LCG weaknesses and fails modern statistical batteries. System.Random considered harmful
DotNetRandom 54,300,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 812,500,000 844,800,000 1,333,700,000 184,600,000 387,000,000 580,800,000 505,400,000
WaveSplatRandom 780,800,000 721,900,000 1,323,500,000 182,500,000 400,700,000 532,600,000 463,400,000
BlastCircuitRandom 785,700,000 716,200,000 1,068,900,000 183,300,000 353,100,000 485,400,000 422,600,000
SplitMix64 777,700,000 774,200,000 1,042,200,000 183,200,000 362,300,000 484,000,000 436,100,000
FlurryBurstRandom 771,200,000 678,400,000 947,500,000 183,500,000 311,600,000 445,700,000 405,200,000
PcgRandom 777,500,000 673,700,000 916,300,000 184,200,000 328,700,000 454,100,000 409,400,000
IllusionFlow 789,200,000 641,300,000 891,400,000 177,800,000 309,100,000 445,700,000 396,000,000
XoroShiroRandom 770,000,000 592,300,000 762,900,000 165,800,000 242,400,000 427,700,000 381,800,000
RomuDuo 783,100,000 592,000,000 757,900,000 164,500,000 249,800,000 443,500,000 394,800,000
StormDropRandom 776,100,000 568,200,000 713,500,000 181,400,000 264,100,000 397,600,000 364,300,000
XorShiftRandom 779,800,000 587,300,000 599,800,000 183,300,000 272,400,000 432,200,000 388,700,000
WyRandom 749,900,000 380,600,000 440,100,000 164,700,000 186,700,000 293,600,000 274,300,000
SquirrelRandom 759,200,000 407,200,000 409,000,000 169,500,000 193,400,000 331,400,000 311,200,000
PhotonSpinRandom 701,900,000 246,500,000 260,200,000 118,000,000 117,000,000 211,300,000 204,300,000
UnityRandom 623,500,000 84,100,000 86,800,000 61,200,000 41,000,000 80,400,000 81,400,000
SystemRandom 147,100,000 148,100,000 64,200,000 130,900,000 137,700,000 58,500,000 56,900,000
DotNetRandom 539,800,000 52,500,000 54,300,000 45,800,000 26,700,000 53,500,000 53,000,000

Clone this wiki locally