How Randomness Works
Web Crypto selection, Fisher–Yates shuffling, weights, duplicates and wheel animation explained.
Effective and last reviewed: August 27, 2026
Browser-based randomness
Core selections use window.crypto.getRandomValues rather than Math.random. Rejection sampling maps unsigned random values to a range without modulo bias.
List shuffling
A Fisher–Yates shuffle walks backward through the list and swaps each position with a cryptographically chosen earlier position.
Weighted selection
Positive relative weights create cumulative ranges. The displayed probability equals one option’s weight divided by the total weight.
Wheel animation
The result is calculated first. Animation then rotates the wheel to reveal that segment; frame rate and device speed do not choose the winner.
Duplicates and removal
Duplicate input lines are kept or removed according to the visible option. Winner removal changes the next draw’s eligible list.
Limitations
A browser tool cannot certify participant eligibility or replace regulated lottery controls, independent witnesses or professional advice.