How the draw works: randomness, fairness and privacy
A plain-language look at what happens between pressing Draw and seeing a winner, and why you can trust it.
What happens when you press Draw
- The tool counts the entries still eligible, for example 120.
- It asks your browser for a random whole number between 0 and 119 using
crypto.getRandomValues, the same source of randomness used for encryption keys. - The entry at that position becomes the winner, is removed from the pool and is stamped with the time and the pool size.
- Only then does the reel start. Its speed over time is calculated so that it comes to a stop with that person's card exactly on the pointer when your chosen spin time ends. The reel is the show; the secure random pick has already happened, so changing the spin length, the pattern or skipping the spin never changes who wins.
How the reel behaves
Before a draw the names drift slowly across the window. You choose a spin length from 5 seconds to 5 minutes. For spins of 10 seconds or less, the reel accelerates to a peak speed, holds it briefly and then slows smoothly to a stop. For longer spins it goes straight to peak speed, then varies between medium and peak speed using the oscillation pattern you pick (a smooth wave, a heartbeat, random wandering and seven more), and finally slows over the last 5 to 10 seconds until it stops completely. A countdown on the machine shows the time left.
Why plain random numbers can be slightly unfair
Many simple pickers use Math.random() or take a large random number and apply a remainder (modulo). The second approach hides a subtle flaw called modulo bias. Imagine a generator that produces numbers from 0 to 9 and you need a pick between 0 and 6. If you take the remainder after dividing by 7, the numbers 0, 1 and 2 can each be produced two ways, while 3, 4, 5 and 6 only one way. Low positions become more likely than high ones.
The effect is tiny with a 32-bit generator and small lists, but it is real, and it is avoidable. This tool uses rejection sampling: it throws away the few random values that would cause the imbalance and asks again. The result is that every eligible entry has exactly the same probability.
| Approach | Unbiased? | Used here |
|---|---|---|
Math.random() scaled to the list length | Not designed for fairness or security | No |
| Random 32-bit number with a remainder | Slightly biased | No |
| Secure random number with rejection sampling | Yes | Yes |
Duplicates, entries and chances
Every row is one entry. If a name appears twice it holds two entries and therefore twice the chance of being drawn, because two of the positions in the list belong to that person. This makes it easy to model "one extra entry for every referral" without any hidden weighting. Once someone wins they leave the pool, so one person cannot take several prizes unless you put them back.
A record you can show people
Each winner is stored with their draw number, the exact time, the prize label and the number of entries in the pool when they were drawn. The Excel and CSV export includes these columns, and the print view produces a clean report. When someone asks "how do I know it was fair?", you can show the pool size, the order and the timestamps.
Where your data lives
The page is a static website. Your file is read by your browser, the draw runs in your browser, and the optional autosave writes to your browser's local storage. There is no account, no database and no upload, so there is nothing on our side to leak or sell. The only network requests are for the page itself, a few open-source libraries and fonts, and, if you allow them, ads. Read the privacy policy for details.
What the tool cannot guarantee
- It cannot know whether your list contains every real entrant or includes fake ones. A fair draw from an unfair list is still unfair.
- It is not a licensed lottery or a legal compliance tool. Check the rules for raffles and promotions where you live.
- Browsers vary, but all current ones provide a secure random generator. If one were missing, the tool would fall back to a less secure method; this is extremely rare.
Ready to draw?
Add your names and have a fair winner in under a minute. Free, private and no sign-up.
Open the name picker