How our random tools work
Random Wheel Tools uses the browser's cryptographic random source, explicit validation, and documented sampling rules. This page explains what that proves—and what it does not.
Entropy and unbiased integers
Draws start with crypto.getRandomValues(). Integer ranges use rejection sampling, so the incomplete tail of the 32-bit range is discarded instead of introducing modulo bias. If the required browser API is unavailable, a tool reports failure instead of falling back to Math.random().
Shuffling, weighting, and no-repeat draws
Uniform lists use Fisher–Yates shuffling or partial sampling without replacement. Weighted tools validate every positive weight and make the modeled first-draw chance visible. Elimination and no-repeat modes take a snapshot before animation so edits or duplicate events cannot change an in-flight result.
Fairness boundaries
Browser cryptographic randomness is appropriate for ordinary classroom, team, party, and personal decisions. It is not atmospheric randomness, a regulated drawing service, a notarized audit, or proof that the source list was complete. A local draw receipt helps reproduce what the browser recorded, but it is not third-party certification.
Testing and corrections
The random engine accepts injected entropy for deterministic unit and boundary tests. Release checks cover inclusion, duplicate identity, range limits, workspace migration, cancellation, hydration, and CSV round trips. Reproducible defects can be reported to the support address on the Contact page.
Generated result cue
The optional wheel cue is generated at runtime with two Web Audio oscillator notes. It is original program output and does not download or bundle third-party music or sound recordings.
Primary references
The implementation is independently written against the W3C Web Cryptography API and standard sampling algorithms. Product behavior and limits are versioned in the public changelog.
Product and methodology review: