NamesWheel is a spinner you can watch. It is also a random number generator you should be able to explain. This page is the contract: what “random” means here, what the animation does not do, and how special modes change the odds.
How a winner is selected
- We take the current eligible list (blank lines and eliminated names are ignored).
- We draw an index with
crypto.getRandomValues()— the same family of APIs browsers use for secure tokens. We reject biased remainders so “modulo the list length” does not favor early slices. - Only then do we compute a target angle and play the deceleration animation.
If the animation were the source of truth, frame drops or a slow device could change the result. They cannot. The winner is already chosen.
Randomness vs the wheel animation
The wheel is a progress indicator. Extra full rotations and easing make the stop look physical. Reduced-motion users skip the spin and still get the same quality of pick. Sound ticks follow the spinning slices; they do not vote.
Duplicates
If the same name appears twice in the list, it is two slices. That is usually a paste accident. Use Remove duplicates when you want unique people. If you intentionally want two tickets for one person, leave both lines — that is a manual weight of 2.
Weighted probability
On the weighted wheel, chance is weight ÷ total weight. Slice arc length uses the same ratio so the picture matches the math. Weights of zero or less are treated as unused.
No-repeat selection
When “Remove winner after spin” is on — or you tap Remove & spin again — that entry is marked eliminated. The next draw samples only the remaining pool. History still shows who already won. This is sampling without replacement, not a new RNG.
Empty and single-item lists
With no eligible names, Spin does nothing. With one eligible name, that name is the winner — there is no random draw to make.
What we do not claim
- We do not publish third-party audit badges we have not earned.
- We do not use fake star ratings in markup.
- We cannot make a public raffle “certified” without your own rules and records.