-
Notifications
You must be signed in to change notification settings - Fork 7
Performance Random Performance
github-actions[bot] edited this page Jan 12, 2026
·
5 revisions
Auto-generated via RandomPerformanceTests.Benchmark. Run the test to refresh these summary and detail tables.
| 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 |
| 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 |
📦 Unity Helpers | 📖 Documentation | 🐛 Issues | 📜 MIT License
- Inspector Button
- Inspector Conditional Display
- Inspector Grouping Attributes
- Inspector Inline Editor
- Inspector Overview
- Inspector Selection Attributes
- Inspector Settings
- Inspector Validation Attributes
- Utility Components
- Visual Components
- Data Structures
- Helper Utilities
- Math And Extensions
- Pooling Guide
- Random Generators
- Reflection Helpers
- Singletons