What a random picker does that choosing in your head cannot
Ask someone to pick a person at random and you get whoever spoke last, whoever is sitting opposite, or whoever has the easiest name to say. Numbers fare no better: asked for one between 1 and 10, people do not spread their answers evenly. Slips of paper in a hat are fair, but they cost you preparation and someone trustworthy to hold the hat.
This page turns that into one button. Paste a list, press Draw, and the list is reshuffled before the top entries come off it, which is the same thing as cutting a properly shuffled deck. It can also produce numbers in a range you choose, or split a list into teams.
Where the randomness comes from
Every draw uses crypto.getRandomValues(), the browser’s cryptographic random source, feeding a Fisher-Yates shuffle: walk the list from the last position backwards, swapping each entry with a randomly chosen position at or before it, and every possible ordering ends up equally likely. That is a stronger guarantee than the common one-liner of sorting a list by Math.random(), which is measurably biased toward some orderings.
The draw happens entirely inside your browser, so there is no back end here that could have decided the winner in advance.
Which of the three modes fits the job
- Pick from a list: you have names or options written down and want some of them chosen. Cold calling in class, a giveaway, who buys coffee, where to eat, a card off a deck.
- Random numbers: you want numbers rather than names. Give a lowest value, a highest value and how many to draw; both ends of the range can come up.
- Split into teams: everyone on the list has to end up somewhere and nobody is left over. Group projects, five-a-side sides, seating plans, a rota.
The two switches people get wrong
- Allow the same number twice: leave it off and each number appears once at most, which is what lottery-style numbers and seat numbers need. Turn it on and every pick is independent, which is what dice and spinners do, since the same face can and should repeat.
- Fixed number of teams against max per team: pick the first when you know how many teams you want, such as four presentation groups. Pick the second when the cap is a capacity, such as four seats per car, and the tool works out how many teams that needs before spreading people evenly.
Settings lookup for common draws
| What you want to do | Mode | Settings |
|---|---|---|
| Cold call one student | Pick from a list | Paste the class roll, draw 1 |
| Pick three giveaway winners | Pick from a list | Paste the entrants, draw 3 in one go |
| Draw a seat or ticket number | Random numbers | 1 to the class or ticket count, draw 1, repeats off |
| Roll two dice | Random numbers | 1 to 6, draw 2, repeats on |
| Flip a coin | Pick from a list | Two lines, Heads and Tails, draw 1 |
| Split a class for group work | Split into teams | Fixed number of teams, type how many |
| Assign cars or dinner tables | Split into teams | Max per team, type the capacity |
| Draw a playing card | Pick from a list | Fill with a 52-card deck, draw 1 |
Walkthrough: cold calling and prize draws
- Choose Pick from a list, delete the sample names and paste your own, one per line. Blank lines are skipped, so a column pasted out of a spreadsheet needs no cleaning up.
- Set How many to the number you want out. Ask for more than the list holds and you get everyone back in shuffled order, which is a neat way to set a speaking rota.
- Press Draw. Results appear as large cards, and each press is an independent draw rather than a continuation of the last one.
- Running several prizes with no repeat winners? Draw all the places at once and read first, second and third off the single result instead of drawing three separate times.
- The recent list underneath keeps your last few setups, so one click restores the same roll without pasting it again.
Walkthrough: random numbers and dice rolls
- Choose Random numbers and set the lowest and highest values. Both ends of the range can be drawn, so 1 to 49 includes both 1 and 49.
- Set how many numbers you want. For a lottery-style set, check that allow the same number twice is off, since a single line of numbers with a duplicate in it is usually not a valid entry.
- For dice, set the range to 1 to 6, turn repeats on and draw one number per die. Spinners work the same way.
- Press Draw. Numbers come out in shuffled order, not sorted low to high, so sort them yourself if the form expects ascending order.
- For several sets, press again and copy after each press. The tool does not remember earlier sets and will not avoid repeating them.
Walkthrough: splitting a list into teams
- Choose Split into teams and paste the list, one name per line.
- Pick how to split: fixed number of teams when you know how many you want, or max people per team when the cap is what matters.
- Type the number and press Draw. Each team comes back as a card listing its members and its size.
- When the numbers do not divide evenly the spare people go to the earliest teams, so sizes never differ by more than one. Press again to reshuffle the whole list from scratch.
- If some people must not be together, place those few by hand first, then paste the remainder and split that into the teams you still need. The tool takes no constraints of its own.
Getting the result out: copy, announce, keep a record
- Copy all: the button at the top right of the result card copies one entry per line, ready for Slack, email or a spreadsheet column.
- Copying teams: the team result copies as one line per team, in the form
Team 1: Ana, Ben, Chidi, ready to post into a group chat. - Announce it live: for anything with a prize, share your screen and press the button while people watch. A list of names posted afterwards carries far less weight.
- Keep evidence: screenshot the page, since the list and the result are on screen together. iPhone takes the side button and volume up, most Android phones power and volume down, Windows Win+Shift+S and a Mac Cmd+Shift+4.
- Redraw the same list: click the entry in the recent list to restore the setup, then press Draw.
How other tools generate randomness, and how they differ
- Spreadsheets: Excel and Google Sheets both offer
RAND()andRANDBETWEEN(), and both recalculate on almost any edit, so a winner drawn in a cell can change before you have written it down. Paste the value as text straight away. - JavaScript:
Math.random()is fast but explicitly not suitable for anything that has to be unguessable.crypto.getRandomValues(), which this page uses, is the cryptographic alternative. - Python:
random.shuffle()andrandom.choice()use the Mersenne Twister, fine for simulations and reproducible with a seed, while thesecretsmodule is the one the standard library documents for security sensitive work. - Spinning wheel sites: a wheel is the same draw with an animation on top. It plays better on a stream, and it slows down once the list runs past a few dozen entries. This page trades the animation for long lists.
- Platform giveaway tools: comment pickers pull entrants through a social platform API and can filter by follow date or comment text, which a paste box cannot. Export those entrants one per line and you can still draw them here.
Limits and things worth knowing
- It cannot improve your odds: in a fair lottery every combination is equally likely, so generated numbers win no more often than numbers you pick yourself. This solves not knowing what to write down, not winning.
- Results cannot be reproduced: there is no seed and no server-side record, so closing the tab discards the draw. Screenshot or copy anything you need to keep.
- Limits on number draws: with repeats off you can draw at most every number in the range; with repeats on a single draw is capped at one thousand numbers. Larger requests are clamped to those limits.
- Team splits take no rules: the split is random and even, with no support for keeping people together or apart, and asking for more teams than people leaves empty teams.
- Recent setups stay on this device: the last few configurations live in this browser’s local storage. Clearing site data, switching device or using a private window removes them, and they never sync.
- Not a notarized draw: nothing here certifies the outcome. Where a promotion is regulated, follow the process your rules require.
- Accessibility: the mode buttons, the list box and the draw button are all reachable by keyboard, and results are plain text that a screen reader can announce.
Frequently asked questions
Is this picker actually random?
The randomness comes from crypto.getRandomValues(), the browser API built for cryptographic use, rather than Math.random(). The list is then shuffled with the Fisher-Yates algorithm, which gives every possible ordering the same chance, and the first few entries of the shuffled list become the result. Nothing is weighted, and no entry is favored because of where it sits in your list.
Can I reproduce a draw, or set a seed?
No, and that is deliberate. There is no seed field and no saved sequence, so pressing Draw twice on the same list gives two independent results and the first draw has no effect on the second. If you need a record of what came out, take a screenshot or copy the result before you leave the page.
Does my list get uploaded anywhere?
No. The whole draw runs in your browser. Names, numbers and results are never sent to a server, so there is no copy of your list on this site and no way for anyone here to see or fix a result. The page works offline once it has loaded.
How many names can I paste in?
There is no fixed limit. Paste one entry per line and blank lines are ignored, so pasting a column straight out of a spreadsheet is fine. Lists of several hundred to a few thousand entries run without trouble on an ordinary phone or laptop; the practical ceiling is your device, not the tool.
Can the same number come up twice?
Only if you tick the allow repeats box. With it off, each number in the range appears at most once, which is what lottery-style draws and seat numbers need. With it on, every pick is independent, which is what you want for dice, spinners and coin flips where the same face can come up again.
What happens when the teams do not divide evenly?
The list is shuffled first, then split as evenly as possible, so the leftover people go to the first teams and no team is ever more than one person larger than another. Ten people split into three teams gives 4, 3 and 3. If you ask for more teams than you have people, the extra teams come back empty.
Can I stop two specific people from landing on the same team?
Not inside the tool. The split is purely random and does not take constraints. The usual workaround is to place the people who must be kept apart by hand first, then paste everyone else in and split the remainder into the number of teams you still need to fill.
How do I draw a playing card or flip a coin?
For cards, switch to list mode and press the button that fills the box with a standard 52-card deck, then draw as many cards as you need with repeats off. For a coin, put Heads on one line and Tails on the next and draw one. Any two-option decision works the same way.
Does picking numbers here improve my odds in a lottery?
No. Every combination has the same chance in a fair draw, so numbers picked here are exactly as likely as numbers you choose yourself. What a generator saves you is the effort of deciding, and it avoids the clustering that human picks fall into, such as dates, which matters only for how many people you might share a prize with.
Is this good enough for a public giveaway?
For a casual prize draw it is fine, especially if you run it on screen while people watch. It is not an audited or notarized process: there is no third party certifying the result and no verifiable log. Promotions with legal requirements in your country may need a documented or supervised draw, so check the rules that apply to you before relying on a web page.
Sources
- Randomness comes from the Web Cryptography API method Crypto.getRandomValues(), documented on MDN together with its browser support.
- MDN’s page for Math.random() states that it does not provide cryptographically secure numbers and points to the Web Crypto API instead.
- The shuffle is Fisher-Yates: walk the list from the last position backwards, swapping each entry with a uniformly chosen position at or before it, which makes every permutation equally likely.
- The Python standard library documents the
secretsmodule as the one to use for security sensitive randomness, and notes that therandommodule is not suitable for it. - Rules for public prize promotions differ by country and by platform. Follow the requirements of the regulator and the platform that apply where the promotion runs.
Related tools
- Random Password Generator
Generate a cryptographically random password in your browser: choose the length (4 to 64),…
- UUID Generator (v4 and v7)
Generate UUID v4 (random) or UUID v7 (time-ordered) identifiers in bulk and copy them with one click.
- QR Code Generator (SVG & PNG)
Turn a link, text or Wi-Fi login into a QR code and download it as SVG or PNG.
- Countdown Timer and Age Calculator
Count down to any date in days, hours, minutes and seconds, or enter a birth date to get a…
- Pokemon Type Chart Calculator
Type a Pokemon name to load its types, or choose one or two defending types, and see which…
Privacy: every draw runs in your browser. Your list, the numbers and the results are never uploaded, and this site has no back end that could receive them. The few recent setups shown under the tool are kept in this browser’s local storage only, and you can delete them one at a time or clear them all.
