gjrand Statistical Test Suite

David Blackman's gjrand battery — a focused suite of 10 multi-dimensional collision, probability, distance, gap, and run-length tests designed specifically to expose weaknesses in modern high-speed PRNGs at 16-bit and 32-bit resolution.

High-Speed PRNG Focus: gjrand by David Blackman (author of xoshiro256**) targets the specific failure modes of modern high-speed non-cryptographic PRNGs — particularly output bias at reduced word widths and correlation in successive word pairs.

gjrand Test Battery (GJ01–GJ10)

The gjrand battery evaluates PRNGs at both 16-bit and 32-bit output resolutions across five statistical dimensions — collision, probability, distance, gap, and run-length:

IDTest NameProfilePass CriteriaDescription
GJ01mcoll1616-bitUniform collisionMulti-dimensional collision test at 16-bit output resolution (planned).
GJ02mcoll3232-bitUniform collisionMulti-dimensional collision test at 32-bit output resolution (planned).
GJ03mprob1616-bitByte probabilityByte-level probability uniformity test at 16-bit (planned).
GJ04mprob3232-bitWord probabilityWord-level probability uniformity test at 32-bit (planned).
GJ05mdist1616-bitDistance distributionMulti-dimensional distance metric at 16-bit (planned).
GJ06mdist3232-bitDistance distributionMulti-dimensional distance metric at 32-bit (planned).
GJ07mgap1616-bitGap distributionGap between successive equal values at 16-bit (planned).
GJ08mgap3232-bitGap distributionGap between successive equal values at 32-bit (planned).
GJ09mrun1616-bitRun lengthsAscending/descending run length distribution at 16-bit (planned).
GJ10mrun3232-bitRun lengthsAscending/descending run length distribution at 32-bit (planned).

[!NOTE]
All 10 tests are currently in specification stage and display as NOT IMPLEMENTED in the dashboard. Full implementation is planned for an upcoming release.

Design Philosophy

gjrand is deliberately narrow in scope — it runs fewer tests than NIST or Dieharder but applies each at two resolutions (16-bit and 32-bit). This dual-resolution approach catches generators that pass 32-bit tests but fail when their output is folded to smaller word widths — a common failure mode for LCG variants.

When to Use gjrand

  1. High-Speed PRNG Validation: Rapid vetting of non-cryptographic generators (PCG, xoshiro256**, Mulberry32, SplitMix64) for game engines, simulations, and procedural generation where throughput matters more than cryptographic security.
  2. Reduced-Width Output Testing: Testing generators whose 64-bit internal state is folded down to 16-bit or 32-bit outputs — a common design in embedded systems and SIMD-vectorized code where alignment requirements reduce usable bits.
  3. xoshiro/xoroshiro Family Benchmarking: Evaluating the output of generators in the xoshiro/xoroshiro family specifically designed by Blackman & Vigna, which gjrand was crafted to complement.
  4. Game Engine RNG Auditing: Verifying that pseudo-random sequences used for procedural world generation, loot drops, and AI behavior do not exhibit low-dimensional correlation artifacts detectable at reduced bit widths.

Author Context: gjrand is written by David Blackman, co-designer of xoshiro256** and xoroshiro128+. The test suite reflects his intimate knowledge of the failure modes in the generators he designed, making it a uniquely targeted complement to broader batteries like Dieharder or TestU01.

Coming Soon: All 10 gjrand tests are currently queued for implementation. The dashboard will show NOT IMPLEMENTED for all entries until the WebAssembly backend is extended with gjrand’s multi-dimensional sampling algorithms.