How to Pick a Random Winner Fairly for a Giveaway

Two white dice on a table
Photo: “Dice Game” by Skitter Photo · CC0 1.0 · via Openverse (stocksnap)

Short answer

Collect every valid entry into one list with one line per entry, remove duplicates and ineligible entries, then use a random picker that relies on a cryptographically secure random source. Draw any backup winners at the same time, record the draw (a screen recording or screenshot with the date) and announce the result according to the rules you published in advance.

Whether you are running a social media giveaway, a charity raffle, an office secret-gift draw or choosing which student answers next, people want to know the result was fair. A fair draw has three parts: a clean list of entries, a genuinely random selection, and a transparent record of what happened. Here is how to get all three right.

Step 1: Write the rules before you start

Decide and publish the rules at the start, not after you see the entries:

Giveaways and raffles can be regulated, and the rules differ between countries and regions; some types of paid-entry raffle need a licence. Social platforms also have their own promotion policies. Check the rules that apply to you before launching anything with valuable prizes.

Step 2: Build a clean entry list

  1. Export or copy all entries into one list, one entry per line: usernames, names, email addresses or ticket numbers.
  2. Remove ineligible entries: late entries, entries that break the rules and your own account.
  3. Remove duplicates if each person may enter only once. Paste the list into the remove duplicate lines tool with “ignore case” and “trim spaces” on, so “@Sam” and “@sam ” count as the same person. Our guide on removing duplicate lines explains the options.
  4. Handle bonus entries deliberately. If the rules allow extra entries (for example, one per friend tagged), keep those duplicate lines on purpose, so the person appears as many times as they have entries.
  5. Save a copy of the final list with the date. If anyone questions the result, you can show exactly which entries were in the draw.

Step 3: Draw the winner

Paste the final list into the random picker, choose how many winners you need, and turn on “no repeats” so the same entry cannot win twice. Click pick. The picker uses the browser’s cryptographically secure random generator, so every line has an equal chance, and the list stays on your device.

If you need runners-up, draw them in the same session, in order: winner, first backup, second backup. That avoids any suspicion that a backup was chosen later to suit someone.

Numbered tickets

For paper raffle tickets numbered 1 to 500, you do not need a list at all. Use the random number generator with a minimum of 1 and a maximum of 500, and turn off duplicates if you are drawing several prizes.

For live audiences

In a classroom, stream or event, a visual draw builds excitement. The decision wheel lets everyone watch the spin. It works best for a small number of options that fit on the wheel.

Step 4: Record and announce

Why “random” needs a good random source

Not all random numbers are equal. Many programming languages’ default random functions, such as JavaScript’s Math.random(), are fine for games but are not designed to be cryptographically secure. For anything where fairness may be questioned, a cryptographically secure generator is a better choice. In browsers that is crypto.getRandomValues(), the same source used for generating strong passwords and random UUIDs.

A well-built picker also avoids modulo bias. If a program takes a random number from 0 to 255 and uses “number mod 100” to choose one of 100 entries, entries 0 to 55 get slightly more chances than the rest, because 256 does not divide evenly by 100. Good pickers reject out-of-range values and draw again, so every entry is equally likely.

Methods to avoid

Quick checklist

  1. Publish rules before the giveaway starts.
  2. Close entries on time and export them.
  3. Remove ineligible entries and duplicates; save the final list.
  4. Draw winners and backups with a secure random picker.
  5. Record the draw and contact the winner through official channels.

Looking for fun ways to use random draws in class or with friends? See our ideas in brain games and skill tests.

Frequently asked questions

What is the fairest way to pick a random winner?

Use a clean list of eligible entries, remove duplicates, and draw with a random picker that uses a cryptographically secure random source. Record the draw as proof.

How do I pick a random winner from comments?

Copy or export the commenters into a list, one per line, remove duplicates and ineligible entries, then paste the list into a random picker.

Can I pick more than one winner?

Yes. Choose the number of winners and turn on no repeats, so the same entry cannot be drawn twice. Draw backups at the same time.

How do I prove my giveaway was fair?

Publish the rules in advance, save the final entry list, and screen-record the draw showing the list and the result.

Is Math.random fair enough for a giveaway?

It is not designed to be cryptographically secure. For draws where fairness matters, a picker using crypto.getRandomValues is a better choice.

Sources