Skip to content
MCPBytes

Our testing · September 23, 2026

NIST Randomness validation

We used the NIST Statistical Test Suite to check one million bits from our Random Numbers API for bias and patterns. Here’s what we found.

Back to Random Numbers

14 test groups passed every check.

1 million

Output bits tested

14 / 15

Test groups passed in full

184 / 188

Individual checks passed

For everyday choices, dice rolls and simulations, these results are encouraging. The sample passed every check in 14 of the 15 test groups, including checks for balanced bits, repetition and unusual structure.

The remaining group looks for specific bit patterns. Four of its 148 checks were flagged because those patterns appeared more or less often than expected. The other 144 passed.

Flags can occur by chance in random data. This run does not establish the cause of these four flags; the complete results are included below.

Explore the results by test
NIST STS results by test type
What we checkedPassedFlaggedNot evaluated
Are zeros and ones reasonably balanced?Frequency (monobit)100
Does that balance hold across smaller sections?Block frequency100
Does the sequence drift too far toward zeros or ones?Cumulative sums200
Does it switch between zeros and ones as often as expected?Runs100
Are long runs of ones within the expected range?Longest run of ones100
Does arranging the bits into grids reveal too much structure?Binary matrix rank100
Are there unusually strong repeating cycles?Discrete Fourier transform100
Do specific bit patterns occur too often or too rarely?Non-overlapping templates14440
Do overlapping patterns occur as often as expected?Overlapping templates100
Is the sequence unusually easy to compress?Maurer's universal100
Do short patterns repeat more than expected?Approximate entropy100
Does a walk through the sequence revisit positions as expected?Random excursions800
Are the total visits to those positions within the expected range?Random excursions variant1800
Do different short bit patterns appear in balanced proportions?Serial200
Can a simple linear rule describe the sequence too easily?Linear complexity100

How we tested

We collected 31,250 numbers through the same API available to customers, then ran all 15 test types in NIST’s Statistical Test Suite. Together, they examine different characteristics of a random sequence.

We used the first complete sample and kept every result. You can download the sample, read the full results or reproduce the checks yourself.

Technical method and sample fingerprint

One sequence of 1,000,000 bits, collected in 32 API jobs across the full signed 32-bit range. We used NIST STS 2.1.2 with default parameters and a significance level of 0.01. A check passes when its p-value meets that threshold.

We preserved the original order, added 2,147,483,648 to each integer and encoded it as unsigned 32-bit big-endian bytes, read most-significant bit first. No values were filtered, substituted or padded. Individual tests use their standard block handling.

The suite was checked against NIST’s reference sample before testing our output. This run evaluates one sequence; the original logs’ multi-sequence summary fields are not used in our results.

Sample SHA-256:

7c8b5ba8632c97a0af747a51e3940b76ab21edbd84ff9d98933ef22e7a264611

The full results

Open any test to see its individual checks and p-values, using the same numbering and precision as the original logs.

Frequency (monobit) · 1 passed

Are zeros and ones reasonably balanced?

  • 0: 0.874457 · Passed
Block frequency · 1 passed

Does that balance hold across smaller sections?

  • 0: 0.186022 · Passed
Cumulative sums · 2 passed

Does the sequence drift too far toward zeros or ones?

  • 0: 0.753323 · Passed
  • 1: 0.890593 · Passed
Runs · 1 passed

Does it switch between zeros and ones as often as expected?

  • 0: 0.108720 · Passed
Longest run of ones · 1 passed

Are long runs of ones within the expected range?

  • 0: 0.462613 · Passed
Binary matrix rank · 1 passed

Does arranging the bits into grids reveal too much structure?

  • 0: 0.884661 · Passed
Discrete Fourier transform · 1 passed

Are there unusually strong repeating cycles?

  • 0: 0.620220 · Passed
Non-overlapping templates · 144 passed, 4 flagged

Do specific bit patterns occur too often or too rarely?

  • 0: 0.488543 · Passed
  • 1: 0.024912 · Passed
  • 2: 0.956441 · Passed
  • 3: 0.064138 · Passed
  • 4: 0.762904 · Passed
  • 5: 0.645609 · Passed
  • 6: 0.877426 · Passed
  • 7: 0.062192 · Passed
  • 8: 0.657117 · Passed
  • 9: 0.599571 · Passed
  • 10: 0.831365 · Passed
  • 11: 0.994429 · Passed
  • 12: 0.685766 · Passed
  • 13: 0.839431 · Passed
  • 14: 0.140180 · Passed
  • 15: 0.581135 · Passed
  • 16: 0.260878 · Passed
  • 17: 0.793349 · Passed
  • 18: 0.170406 · Passed
  • 19: 0.957863 · Passed
  • 20: 0.669801 · Passed
  • 21: 0.720717 · Passed
  • 22: 0.385986 · Passed
  • 23: 0.558315 · Passed
  • 24: 0.284879 · Passed
  • 25: 0.723856 · Passed
  • 26: 0.608299 · Passed
  • 27: 0.049763 · Passed
  • 28: 0.255052 · Passed
  • 29: 0.475974 · Passed
  • 30: 0.152873 · Passed
  • 31: 0.318727 · Passed
  • 32: 0.194078 · Passed
  • 33: 0.419182 · Passed
  • 34: 0.573074 · Passed
  • 35: 0.862910 · Passed
  • 36: 0.678086 · Passed
  • 37: 0.905982 · Passed
  • 38: 0.053715 · Passed
  • 39: 0.738536 · Passed
  • 40: 0.114697 · Passed
  • 41: 0.137630 · Passed
  • 42: 0.603107 · Passed
  • 43: 0.798974 · Passed
  • 44: 0.493835 · Passed
  • 45: 0.158049 · Passed
  • 46: 0.543328 · Passed
  • 47: 0.644779 · Passed
  • 48: 0.773656 · Passed
  • 49: 0.020469 · Passed
  • 50: 0.056791 · Passed
  • 51: 0.164637 · Passed
  • 52: 0.063038 · Passed
  • 53: 0.161315 · Passed
  • 54: 0.067242 · Passed
  • 55: 0.362401 · Passed
  • 56: 0.187426 · Passed
  • 57: 0.241129 · Passed
  • 58: 0.668261 · Passed
  • 59: 0.372514 · Passed
  • 60: 0.647982 · Passed
  • 61: 0.862440 · Passed
  • 62: 0.676430 · Passed
  • 63: 0.101853 · Passed
  • 64: 0.777323 · Passed
  • 65: 0.699900 · Passed
  • 66: 0.924132 · Passed
  • 67: 0.498153 · Passed
  • 68: 0.335881 · Passed
  • 69: 0.502265 · Passed
  • 70: 0.211426 · Passed
  • 71: 0.777323 · Passed
  • 72: 0.115895 · Passed
  • 73: 0.004054 · Flagged
  • 74: 0.488543 · Passed
  • 75: 0.858749 · Passed
  • 76: 0.950257 · Passed
  • 77: 0.756805 · Passed
  • 78: 0.284017 · Passed
  • 79: 0.006315 · Flagged
  • 80: 0.703070 · Passed
  • 81: 0.291605 · Passed
  • 82: 0.123073 · Passed
  • 83: 0.424378 · Passed
  • 84: 0.456302 · Passed
  • 85: 0.592041 · Passed
  • 86: 0.657829 · Passed
  • 87: 0.535657 · Passed
  • 88: 0.436850 · Passed
  • 89: 0.118131 · Passed
  • 90: 0.063630 · Passed
  • 91: 0.452269 · Passed
  • 92: 0.020461 · Passed
  • 93: 0.283626 · Passed
  • 94: 0.831772 · Passed
  • 95: 0.226946 · Passed
  • 96: 0.421215 · Passed
  • 97: 0.943310 · Passed
  • 98: 0.625687 · Passed
  • 99: 0.903340 · Passed
  • 100: 0.118975 · Passed
  • 101: 0.704595 · Passed
  • 102: 0.147470 · Passed
  • 103: 0.159131 · Passed
  • 104: 0.541378 · Passed
  • 105: 0.977977 · Passed
  • 106: 0.273822 · Passed
  • 107: 0.441122 · Passed
  • 108: 0.161415 · Passed
  • 109: 0.185512 · Passed
  • 110: 0.454389 · Passed
  • 111: 0.185736 · Passed
  • 112: 0.047072 · Passed
  • 113: 0.204537 · Passed
  • 114: 0.398180 · Passed
  • 115: 0.250605 · Passed
  • 116: 0.199489 · Passed
  • 117: 0.421419 · Passed
  • 118: 0.491737 · Passed
  • 119: 0.623555 · Passed
  • 120: 0.112006 · Passed
  • 121: 0.992162 · Passed
  • 122: 0.590044 · Passed
  • 123: 0.047407 · Passed
  • 124: 0.960275 · Passed
  • 125: 0.434671 · Passed
  • 126: 0.205814 · Passed
  • 127: 0.195127 · Passed
  • 128: 0.224189 · Passed
  • 129: 0.817444 · Passed
  • 130: 0.138592 · Passed
  • 131: 0.483826 · Passed
  • 132: 0.004557 · Flagged
  • 133: 0.076549 · Passed
  • 134: 0.963382 · Passed
  • 135: 0.380791 · Passed
  • 136: 0.786912 · Passed
  • 137: 0.665773 · Passed
  • 138: 0.629005 · Passed
  • 139: 0.060489 · Passed
  • 140: 0.284800 · Passed
  • 141: 0.195829 · Passed
  • 142: 0.295132 · Passed
  • 143: 0.686002 · Passed
  • 144: 0.261319 · Passed
  • 145: 0.669327 · Passed
  • 146: 0.848525 · Passed
  • 147: 0.004054 · Flagged
Overlapping templates · 1 passed

Do overlapping patterns occur as often as expected?

  • 0: 0.828687 · Passed
Maurer's universal · 1 passed

Is the sequence unusually easy to compress?

  • 0: 0.614901 · Passed
Approximate entropy · 1 passed

Do short patterns repeat more than expected?

  • 0: 0.519719 · Passed
Random excursions · 8 passed

Does a walk through the sequence revisit positions as expected?

  • 0: 0.219325 · Passed
  • 1: 0.376025 · Passed
  • 2: 0.302738 · Passed
  • 3: 0.997984 · Passed
  • 4: 0.638494 · Passed
  • 5: 0.621859 · Passed
  • 6: 0.962349 · Passed
  • 7: 0.358395 · Passed
Random excursions variant · 18 passed

Are the total visits to those positions within the expected range?

  • 0: 0.680865 · Passed
  • 1: 0.570971 · Passed
  • 2: 0.502285 · Passed
  • 3: 0.527650 · Passed
  • 4: 0.532993 · Passed
  • 5: 0.558961 · Passed
  • 6: 0.754835 · Passed
  • 7: 0.988513 · Passed
  • 8: 0.841870 · Passed
  • 9: 0.600493 · Passed
  • 10: 0.954074 · Passed
  • 11: 0.928907 · Passed
  • 12: 0.954901 · Passed
  • 13: 0.822415 · Passed
  • 14: 0.641088 · Passed
  • 15: 0.538180 · Passed
  • 16: 0.536487 · Passed
  • 17: 0.390419 · Passed
Serial · 2 passed

Do different short bit patterns appear in balanced proportions?

  • 0: 0.385271 · Passed
  • 1: 0.046110 · Passed
Linear complexity · 1 passed

Can a simple linear rule describe the sequence too easily?

  • 0: 0.663200 · Passed