RandomNest

How to Run a Fair Raffle or Giveaway

5 min readUpdated September 2026
An old paper raffle ticket

Running a giveaway looks simple: gather names, pick a winner, done. But a draw that is not visibly fair breeds suspicion — and one that is accidentally biased can pick the same kind of entry every time. A few small habits make your raffle both fair and defensible.

Start with a clean list of entries

Fairness begins before the draw. Decide the rules in advance: one entry per person or several, whether duplicates are allowed, and the exact cut-off time. Then de-duplicate the list so nobody appears twice by accident, and remove blank or invalid rows. If everyone should have an equal chance, each eligible person must appear exactly once; if you deliberately reward extra actions with extra entries, make that policy public so it does not look like favouritism later.

Let a random tool do the choosing

Never scroll and "stop somewhere" or pick a number off the top of your head — humans are terrible at being random and gravitate to familiar names and round numbers. Paste your list into a random list picker and let it draw. To choose several winners at once, pick without replacement so the same name cannot win twice; if you want a ranked backup order in case winners do not respond, shuffle the whole list instead and read the top few.

Make the result verifiable

Trust comes from transparency. Announce the entry count before drawing, and consider recording the moment you press the button — a short screen capture is enough for a community giveaway. For higher-stakes draws, publish the rules and the final entrant count ahead of time so observers can confirm nothing was added or removed after the fact. The goal is that anyone watching could agree the winner was chosen by chance, not by you.

Shuffle properly, or not at all

The classic way to shuffle a list badly is to sort it with a comparator that returns a random answer. It looks elegant and it is wrong: sorting algorithms assume the comparator is consistent, and when it is not, some positions end up far likelier than others. Browsers have shipped implementations where the first entry stayed near the top in a measurable majority of shuffles.

The correct algorithm is Fisher-Yates. Walk the list from the last position down to the second and, at each step, swap the current entry with one chosen uniformly from the positions at or below it. Every one of the n! orderings comes out equally likely, it runs in a single pass, and it needs no extra memory. Drawing winners without replacement is the same operation stopped early: shuffle, then take the first three names.

Two details matter in practice. The random index at each step must itself be unbiased — the modulo trap applies here too — and the shuffle has to run on the de-duplicated list, not on the raw submissions, or a person with four entries quietly becomes four people.

Weighted entries and multiple prizes

Some giveaways deliberately give people more than one chance: an extra entry for sharing a post, three for referring a friend. That is perfectly fair as long as the weighting is written into the rules before entries open. The simplest implementation is to expand the list so that a person with three entries appears three times, and then shuffle it normally.

Multiple prizes need one more decision: with or without replacement. Without replacement means each person can win once, which is what most giveaways intend, and you simply take the first n distinct names from the shuffled list. With replacement lets the same entrant win twice, which only makes sense for something like a repeated daily draw. Decide before the draw, not after a name comes up twice.

A record that survives a complaint

Fairness nobody can check is indistinguishable from unfairness. Export the final entry list to a file before the draw and publish its hash — a SHA-256 of the file is a short string that later proves the list was not edited. Then announce the draw time in advance, and record the screen or stream it live if the prize is big enough to attract suspicion.

Keep the raw entries, the de-duplicated list, the winner order and the timestamp for as long as the promotion's terms require — often a year in the EU, and consumer-protection regulators in several countries can ask to see them. Note too that prize draws are regulated in some jurisdictions: a draw that requires a purchase can legally count as a lottery, which usually needs a licence.

The takeaway

Fix the rules first, de-duplicate your entries, draw with a random picker (without replacement for multiple winners), and record the moment for transparency. Open the random list picker to run your next draw.

Related tool
Random List Picker

Draw random winners from a list or shuffle it into a fair order.