Dice Roller

Cryptographically Secure · Uniform Distribution · Rejection Sampling

Each roll uses crypto.getRandomValues() to generate a cryptographically secure random byte.

Rejection sampling discards values that would create modulo bias. For example, a d6 rejects any byte above 251, keeping 252 values that divide evenly by 6.

DieKeep RangeReject %