Short answer: the winner is chosen by your browser's cryptographic random number generator before the wheel starts moving. The animation only shows the result.
Step by step
- Read the list. Each line becomes an entry with a weight of 1, or the weight you set with
*N. - Draw a random number. The site calls
crypto.getRandomValues()for 64 random bits and turns them into a number between 0 and 1. - Map it to an entry. The number is multiplied by the total weight and matched to the entry whose range contains it.
- Animate. The wheel is then rotated so that entry stops under the pointer, landing at a random spot inside its slice.
Why not Math.random()?
Math.random() is fast but is not designed to resist prediction. The Web Crypto generator is seeded by the operating system and is designed so its output cannot be predicted from earlier results.
Does the spin speed change the result?
No. The result is fixed first. Spin time, clicking early or watching the wheel cannot change it, and past results do not influence future spins.
Weighted entries
With weights, an entry's chance equals its weight divided by the total. In a list of "A *3", "B" and "C", A wins 60% of the time and B and C 20% each. Slice sizes on the wheel match these odds.
Team splits
The team generator uses the Fisher–Yates shuffle with unbiased integer selection (rejection sampling), then deals names into teams in turn.
What we do not claim
- Everything runs in your browser. We cannot independently verify any draw you run.
- The permanent result record shows the list, the winner and a time, but anyone can edit a link, so it is a transparency record and not a legal proof.
- For regulated prize draws, follow your local rules and keep your own records.