Aller au contenu
RandoKit
FR

Giveaways

Picking Names Without Anyone Winning Twice

Sampling with vs without replacement explained simply, three practical no-repeat methods, and a worked 12-week rotation example.

8 min readUpdated

"Random" doesn't automatically mean "no repeats." A tool that draws with replacement can, by design, pick the same name twice in a row — that's not a bug, it's a different kind of fairness than the one most people actually want when they say "make sure everyone gets a turn."

With replacement vs. without replacement

Sampling with replacement means every draw is independent: after a name is picked, it goes right back into the pool with the same chance of being picked again next time. This is what you want for something like a daily "employee of the day" pick where repeats across days are fine and even expected over time. Sampling without replacement means a picked name is removed from the pool, so it cannot come up again until the pool is refilled — this is what you want whenever the goal is "everyone gets exactly one turn."

A small example makes the difference concrete. Say you have 5 names in a hat and draw twice, with replacement. The chance the second draw repeats the first is exactly 1 in 5 — 20%, which is high enough to notice and get annoyed by if turns are meant to be shared out fairly. Without replacement, that second draw is guaranteed to be one of the other 4 names: a 0% chance of a repeat, by construction, not by luck. Over a class of 30 or a team of 8, that gap between "could repeat" and "cannot repeat" is the entire difference between a system that feels fair and one that occasionally feels rigged even when it's mathematically legitimate.

Three practical ways to guarantee no repeats

1. Remove-after-pick

Draw one name, take it out of the pool, draw again from what's left. This is the natural approach when winners are announced one at a time over a stretch of time — a raffle with prizes given out in sequence, or a classroom cold-call where you draw one student, they answer, and you move on. The random winner picker supports this directly: it can remove a winner from the list automatically after each draw, so a single "spin, remove, repeat" loop takes you through the whole list without any manual bookkeeping.

2. Draw N unique winners in one run

If you already know you need, say, 3 winners for 3 identical prizes, draw all 3 in one pass instead of removing and re-drawing three separate times. This produces an ordered result (1st, 2nd, 3rd) from a single operation on the full pool, which is both faster and easier to record as evidence, since there's one result to screenshot or export rather than three sequential ones to stitch together. This is the approach covered in more depth, including how it pairs with backup winners, in how to run a fair giveaway.

3. Shuffle the whole list once and read down it

Instead of drawing repeatedly, randomize the order of the entire list one time and then work through it top to bottom. This is functionally identical to remove-after-pick — each subsequent name is still equally likely among those remaining — but it produces a single artifact (the shuffled list) that you can save, print, or paste into a spreadsheet before anyone sees it. The random order generator is built for exactly this: paste your list in, get a randomized sequence back, done.

Why shuffling once is cleanest for multi-round draws

For anything that spans multiple sessions — a weekly presentation slot, a rotating on-call schedule, a multi-week raffle — shuffling the full list once, up front, beats drawing fresh each round for a practical reason: it removes the temptation and the risk of re-running the draw. If you generate a fixed order for all 12 weeks in one shuffle, week 7's presenter is already decided in week 1, recorded, and not subject to any further randomness or any argument about it later. If instead you draw a new name each week from a shrinking pool, you have to remember to actually remove past presenters every single week, and any lapse in that bookkeeping reopens the door to a repeat.

A shuffled list is also easier to communicate. Publishing "here's the order for the whole term" up front lets everyone see when their turn is coming, rather than everyone waiting anxiously each week to find out.

Keeping a running record across sessions

Whichever method you use, keep a simple record outside the tool: a spreadsheet column or a saved export listing who's already gone. Browser-based pickers keep their lists in local storage on that device, so the record survives a page refresh, but it won't automatically follow you to a different browser or computer — if you're running a rotation across multiple devices or handing it off to a co-organizer, export the current state as a .csv after each round rather than relying on it being there next time you open the tool somewhere else.

What to do when someone declines

In a giveaway or prize context, a decline should be handled the same way a non-response is: move to the next name in your pre-drawn backup order rather than reopening the whole draw. If you shuffled the entire entrant list once, the backups are already sitting right below the original winner in the same result — no new randomness needed, no new opportunity for someone to argue the redraw was engineered. In a rotation context (like a presentation schedule), a decline usually just means a swap: move that person to the end of the existing order rather than reshuffling everyone else's slot.

The classic mistake: re-running a single-winner draw repeatedly

A common failure mode is using a single-winner picker for a multi-winner situation by just hitting draw again for winner 2, winner 3, and so on, without removing winner 1 from the list first. Whoever was drawn first is still sitting in the pool with the same odds as everyone else, so it's entirely possible for the same name to come up twice — and when it does, it looks exactly like the draw was rigged in their favor, even though it was just an honest oversight in the process. The fix is procedural: either turn on remove-after-pick before you start, or draw all the winners you need in one pass as described above. Either one closes the gap; relying on memory to manually delete each winner between draws eventually fails.

Worked example: a 12-week presentation rotation

A team of 12 people needs someone to present at each of the next 12 weekly meetings, with everyone presenting exactly once before anyone repeats.

  1. Paste all 12 names into the random order generator and shuffle once, producing a single randomized sequence of all 12.
  2. Export that sequence and share it with the team as "the schedule for the next 12 weeks" — name 1 presents week 1, name 2 presents week 2, and so on down the list.
  3. Each week, the assigned person presents. No further randomization happens during the 12 weeks — the order was fixed on day one.
  4. If someone scheduled for week 6 is unexpectedly out, swap them with whoever is in the last slot (week 12) rather than reshuffling the remaining weeks, so nobody else's slot moves.
  5. After week 12, if the team wants a second rotation, shuffle the same 12 names again for a fresh order rather than reusing the first one, so the next round isn't predictable from the last.

The same shuffle-once approach works for splitting a team into random pairs for the rotation itself — the random pair generator handles that if presentations are done in twos instead of solo — or see randomizing presentation order for more on scheduling variations like grouping by topic first.

Next step

Decide up front whether you need "no repeats ever" or "no repeats until everyone's had a turn," pick remove-after-pick, draw-N-at-once, or shuffle-once accordingly, and keep an exported record if the rotation spans more than one sitting. For a one-off draw with backups, start with the random winner picker; for a full-list rotation like the example above, start with the random order generator.

Tools used in this guide