Random Wheel Picker
Paste a list of names, hit spin, let the wheel decide. Who presents first, who gets the last biscuit, where lunch is happening — drawn with a cryptographic random number generator, not a coin you keep re-flipping. Nothing leaves your machine.
When would I use this?
Standup order. Who demos first. Which of the four lunch places wins. Raffle draws at the Christmas do, random pairings for a retro, picking a winner from a list of competition entries — any moment where somebody has to choose and nobody wants to be the one who chose. Paste the names, spin, and the wheel takes the blame. The pick is made with your browser’s cryptographic random number generator before the animation starts, so the spin is just theatre for a decision that was already fair. Nothing is uploaded, and nothing is remembered once you close the tab.
01 Who’s on the wheel?
0 entries02 How should it spin?
03 Spin
Add at least two entries above and the wheel comes to life.
No spins yet. The winner appears here — and is announced to screen readers — the moment the wheel stops.
The wheel says
Every spin this session lands here, oldest first, with the time it happened. Close the tab and it is gone — nothing is written to disk.
How the pick is made
- Cryptographic randomness. Numbers come from your browser’s
crypto.getRandomValues— the same source used for security keys — not the ordinary pseudo-random generator. - No modulo bias. Turning a random 32-bit number into “a number from 1 to 7” with a remainder quietly favours the low numbers. Instead, any draw that falls in the uneven tail is thrown away and re-drawn, so every entry is exactly as likely as every other.
- Decided first, animated second. The winner is chosen before the wheel starts moving; the spin is then aimed at that slice. Nothing is read back off the animation, so a dropped frame or a paused tab cannot change the answer.
- Weights are whole numbers. A weight of 3 counts as exactly three tickets in the hat — integers only, so there is no rounding drift to accumulate.
- Nothing leaves the browser. No network requests, no analytics, no cookies, and nothing written to browser storage. Refresh the page and the wheel forgets everything.