Fairness test for dice used in Bitcoin seed generation · v1.0 · runs fully offline
Test rolls only. Never enter the rolls you will use for a real seed, here or in any other tool.
This page tests whether a die is fair. Roll it separately when you generate your seed.
Setup
How strict the test is. It is the chance of failing a die that is actually fair: at 0.05, about 1 in 20 fair dice will fail just by bad luck.
0.01 means fewer false alarms, but a bad die needs a bigger bias (or more rolls) before it gets caught.
0.10 catches problems sooner but fails more fair dice. 0.05 is the standard choice.
The per-bit test splits this level across the bits (α ÷ 4 on a D16).
Record rolls
Paste or import a list of rolls
Results
Rolls
0
Chi-square
Measures how uneven the counts are. For each face it takes (observed − expected)² ÷ expected, then adds them up.
0 would be a perfectly even spread. A fair die usually lands somewhere near the degrees of freedom (df = sides − 1, so about 15 on a D16).
The further above that, the more uneven the counts.
–
p-value
The chance that a perfectly fair die would produce results at least this uneven.
A high value (say 0.65) means your results look like ordinary randomness. A value below α (e.g. 0.05) means a fair die would do this less than 5% of the time, so the die is flagged.
It is not the probability that your die is fair.
–
Detectable bias
Roughly the smallest skew in a single face that your current number of rolls would reliably catch (about 80% of the time at the 5% level).
Smaller is better.
Quadrupling the number of rolls cuts this number in half.
Each bit position on a binary die should land on 1 exactly half the time. A die weighted toward one side
usually shows up here first, because each bit gets n samples instead of n/16.
Full table
Saved runs
Saved in this browser only (local storage). Nothing leaves your device. Export a backup to keep them.