Wheel of Names
Type the names, spin the wheel, get one winner.
Runs entirely in your browser
Loading the tool…
The winner is drawn before the wheel starts turning, using your browser's cryptographic generator rather than the ordinary random function, and the animation then rotates to the slice that was already chosen. That order matters: nothing about where the wheel appears to slow down can change the answer, so the spin is a presentation of a decision rather than the decision itself.
Every name gets an equal slice however many there are, and duplicates are allowed on purpose, since putting somebody in twice is how people weight a draw. Remove the winner after each spin to work through a list without repeats, which is what you want for classroom turns, a standup order, giveaway winners or deciding who buys lunch.
Nothing is saved anywhere, so a list of pupils or colleagues is not stored on a server for the sake of a lunchtime draw. Keep the tab open to keep the list, and paste it again next time. If you want a number rather than a name, the random number generator draws from the same generator without the animation.
How to use it
- Enter one name per line in the list.
- Press Spin and wait for the wheel to stop.
- Remove the winner if you are drawing several names in a row.
Questions
Is the draw actually fair?
Every name gets an equal-sized slice and an equal chance. To weight someone more heavily, add their name more than once.
Can I save my list?
Not on a server, because there isn't one. Keep the names in a text file and paste them back in, which also means no account and no data to leak.
Can the spin be rigged or influenced?
Not by anything you do while it is turning. The winner is chosen first, from crypto.getRandomValues, which is the operating system's generator; the wheel then travels to that slice. Stopping it early, or spinning again quickly, cannot change a decision that was already made.
Do the same names ever come up too often?
Over a few spins, unevenness is what randomness looks like: with six names, one of them coming up three times in a row happens about once in every thirty runs. If you want a draw with no repeats, remove each winner, which is what the button is for.
How many names can it take?
As many as you can read. The wheel keeps drawing labels until they no longer fit, so past about sixty the slices become thin and the names are better checked in the list than on the wheel. The draw itself stays fair at any size.
Is it fair with an odd number of names?
Yes. Each name gets exactly one slice of three hundred and sixty degrees divided by the count, and the winner is picked from the list rather than from an angle, so nothing depends on the slices dividing evenly.
Your data stays on your device
Everything above runs inside your browser as WebAssembly compiled from Rust. Nothing you type is uploaded, logged or stored on a server. You can load this page once, go offline, and it still works.
This page makes no requests at all, to anywhere. That is not a promise in the copy: it is a Content-Security-Policy header your browser enforces, and connect-src on it is none. Open the network tab and watch nothing happen.