To pick a random winner fairly, put every valid entry on its own line, remove duplicates, paste the list into our free list randomizer and shuffle it once. The first name is your winner and the next two are your backups. If your entries are already numbered (comment #1 to #214, ticket 1 to 500), use the random number generator with the first and last number instead.
Both tools are free and work in your browser with nothing to install. Guests can run 5 tool uses a day without an account, and a free My Botsy account (100% free, no spam) removes that daily cap. Every result in this guide comes from runs we did on October 30, 2026.
Two fair ways to draw a winner
| Method | Best when | What you publish as proof |
|---|---|---|
| Shuffle the list of entrants | You have names, handles or emails you can copy into a list | The cleaned entry list, the entry count and the shuffled result |
| Pick a number from 1 to N | Entries are already numbered: comment order in an export, raffle tickets, spreadsheet rows | The range you used, the number drawn and the entry it maps to |
Both give every entry the same chance, as long as the list is clean and you draw once. Most "rigged giveaway" complaints come from the list, not the randomness: someone counted twice, a valid entrant dropped, or a host who re-drew until a name they liked came up.
How to pick a random winner from a list, step by step
- Close entries at a stated time. Write down the cutoff with its time zone (for example, Friday 6:00 PM ET) and ignore anything after it.
- Export the entries as one entrant per line. Copy handles or emails into a plain text list. Keep the entrant identifier only, not the comment text, so "me!!" and "pick me" from the same account collapse into one line.
- Remove entries your rules exclude. Your own account, team members, people outside the eligible countries, comments missing a required tag.
- Normalize, then remove duplicates. Convert the list to lowercase with the case converter, then run it through the duplicate lines remover. Write down the final count.
- Shuffle once. Paste the clean list into the list randomizer and press Submit.
- Read the result top to bottom. Line 1 is the winner, lines 2 and 3 are backups, in that order.
- Save the proof. Screenshot or screen-record the clean list and the shuffled output before you contact anyone.
Worked example: cleaning a real comment export
Here is what a typical copy-paste from a giveaway post looks like. We used 12 lines that include the usual mess: a blank line, a stray 0, the same person twice, the same person with different capitalization, and a trailing space.
@ana.bakes
@marco_runs
@lucia.design
@ana.bakes
@tomfromtexas
@priya.reads
0
@jules_photo
@sam.codes
@nina.plants
@leo_travels
Mistake 1: shuffling the raw list
We pasted that list straight into the list randomizer. It returned 11 lines:
@lucia.design
0
@leo_travels
@priya.reads
@ana.bakes
@ana.bakes
@marco_runs
@tomfromtexas
@jules_photo
@nina.plants
@sam.codes
Two things happened. The blank line was dropped, but the line containing only 0 stayed. (Until October 30, 2026 the tool dropped it too, because PHP treats "0" as empty; we fixed that.) And @ana.bakes stayed in twice. With 11 lines, Ana had a 2 in 11 (about 18%) chance of landing first, while every other line, including the stray 0, had 1 in 11. Duplicates are a feature when your rules give bonus entries; they are a fairness problem when they don't.
The 0 matters both ways. If your entries are ticket numbers starting at zero, ticket 0 is now kept like any other line. If it's junk from a copy-paste, as here, delete it before the draw, or it can "win".
Step 2: removing duplicates (and why one pass wasn't enough)
Next we ran a version of the list without the blank and the 0, but with @Ana.Bakes in capitals and @marco_runs with a trailing space, through the duplicate lines remover. It reported Lines 12, New lines 11, Removed lines 1. Only the exact copy of @ana.bakes was removed. @Ana.Bakes and @marco_runs survived, because the remover compares lines exactly: capital letters and invisible spaces make them different lines.
Social handles are case-insensitive, so for the platform they are the same account. That's why the order in step 4 above is lowercase first, dedupe second.
Step 3: lowercase, then dedupe again
We ran the 11 lines through the case converter set to lowercase. @Ana.Bakes became @ana.bakes, and the trailing space after @marco_runs was removed too. The converter trims every line, so stray spaces in the middle of a list exported from a spreadsheet are cleaned as well. (Before our October 30, 2026 update it only trimmed the start and end of the whole text.)
A second pass through the duplicate lines remover then reported Lines 11, New lines 9, Removed lines 2. Nine real people, each once.
Step 4: the draw
Shuffling those nine handles once with the list randomizer's shuffle returned:
@lucia.design
@priya.reads
@sam.codes
@jules_photo
@ana.bakes
@leo_travels
@marco_runs
@tomfromtexas
@nina.plants
Winner: @lucia.design. Backup 1: @priya.reads. Backup 2: @sam.codes. Each of the nine had a 1 in 9 (about 11.1%) chance of being first. Your shuffle will give a different order, which is the point.
Want to run the same cleanup on your own entries? Open the case converter, then the duplicate lines remover, then the list randomizer. The whole process takes about a minute.
Method 2: pick a random number from 1 to N
When entries already have a position, numbering is faster than copying names. Say your post closed with 214 eligible comments, exported in the order they were posted. In the random number generator we set the minimum to 1 and the maximum to 214. It returned 163, so comment #163 in the export wins.
Three details that trip people up:
- Both ends are included. A range of 1 to 214 can return 1 or 214, so every comment is covered. A range of 0 to 214 would add an entry that doesn't exist.
- Swapped fields are handled for you. If the minimum is higher than the maximum (say 214 and 1), the tool swaps them and draws from 1 to 214, and the fields show the corrected order. Before October 30, 2026 it quietly fell back to the range 0 to 100, so recheck any draw you made that way.
- Fix the numbering before the draw. Platforms reorder comments, and deleted comments shift positions. Export first, then count, then draw.
For backups, draw again and skip any number already picked. For a big giveaway with several prizes, the list method is simpler, because one shuffle gives you a complete order with no repeats.
How to pick several winners and backups
Take them from one shuffle: lines 1 to 3 for three prizes, lines 4 and 5 as backups. Don't shuffle once per prize. Separate shuffles can return the same person twice, and you'd be tempted to keep shuffling until the result "looks right", which quietly turns a random draw into a choice.
The same applies to the first winner: if you shuffle three times and keep the result you prefer, you picked the winner, not chance. Decide in advance that the first shuffle counts.
How to prove your giveaway draw was fair
- Publish the entry count and the cutoff time: "9 valid entries, entries closed Friday 6:00 PM ET."
- Keep the clean list you drew from, so any entrant can confirm they were in it.
- Screen-record the draw. A recording that shows the pasted list, the Submit click and the result is far more convincing than a single screenshot.
- Announce the winner and the backup order together, and say how long the winner has to reply before the prize goes to backup 1.
Check the platform rules before you draw
Platforms have their own requirements for promotions. Instagram's Promotion Guidelines, for example, say the person running the promotion is responsible for its lawful operation, including official rules and eligibility requirements, and that every promotion must include a complete release of Instagram by each entrant and an acknowledgement that the promotion isn't sponsored, endorsed or administered by Instagram. Read the current rules of the platform you use, and check local sweepstakes laws if you're offering a valuable prize. This guide covers the draw itself, not legal requirements.
Common pitfalls
- Near-duplicate accounts.
@ana.bakesand@ana.bakes_2are different lines for any tool. Decide by hand, using your rules. - Editing the list after the draw. Adding a late entry or removing someone once you've seen the result invalidates the draw. Fix the list, then shuffle again from scratch, and say publicly why.
- Expecting lottery-grade randomness. Since October 30, 2026 both tools use PHP's
random_int, which draws from the operating system's cryptographically secure random source, and the list randomizer uses an unbiased Fisher–Yates shuffle (before that they used PHP's Mersenne Twister generator). That's more than fair for giveaways, classrooms and team picks, but regulated lotteries need certified draws and audited processes.
Related free tools and guides
For bigger lists, our guide to removing duplicate lines and cleaning lists covers sorting, blank lines and spreadsheet exports in more depth. If you announce the giveaway on WhatsApp, see how to create a WhatsApp link, and tag the link with the UTM link generator to see which channel brought the entries. To put alphabetical order on the published entry list, use the list alphabetizer.
Ready to draw? Clean your list with the duplicate lines remover, shuffle it once with the list randomizer, or pick a number with the random number generator. They're free, work in your browser and need no account to start.
Frequently asked questions
How do I pick a random winner from a list of names?
Put one name per line, remove duplicates, paste the list into a list randomizer and shuffle once. The first name on the shuffled list wins, and the next names are backups in order.
How do I pick a random comment as a giveaway winner?
Export the comments, keep one line per eligible account, and shuffle that list. Or number the comments in the exported order and generate a random number from 1 to the total; the comment with that number wins.
Is it fair to re-draw if I don't like the winner?
No. Re-drawing until you get a result you like means you chose the winner. Draw once, take backups from the same result, and only move to a backup if the winner is ineligible or doesn't reply in time.
Should duplicate entries be removed before the draw?
Yes, unless your rules give extra entries. A person listed twice in a list of 10 has a 20% chance of winning instead of 10%. Lowercase the list first, because the same handle in different capitals counts as a different line.
How do I pick multiple winners without repeats?
Shuffle the clean list once and take the first lines in order: lines 1 to 3 for three winners, then the following lines as backups. A single shuffle never repeats a line.
Is the My Botsy list randomizer free?
Yes. It's free and works in any browser. Guests get 5 tool uses a day with no account, and a free My Botsy account, with no spam, removes that limit.