e_image" />
Home › No-repeat Rules

How to prevent anyone winning twice

Someone being called to the stage twice is the most common — and most awkward — accident in a draw. This page explains the three deduplication mechanisms and how to verify them live.

How repeat winners actually happen

Looking back at incidents, the causes fall into four categories:

  1. Winners were never removed from the pool: every round draws from the full list, so the more you draw the more likely a collision becomes.
  2. Rounds did not share data: the grand prize used one list and the first prize a copy of it, each deduplicating independently, so cross-prize duplicates slip through.
  3. Someone edited the list mid-event: a person who took leave was deleted, or someone was added last-minute, and the "already won" markers were lost with them.
  4. A manual cross-check missed an entry: the logic was fine, but the person handing out prizes misread a name.

The first three are software problems, the fourth is a process problem. You need to handle both.

Mechanism 1: remove winners from the pool (most reliable)

The safest approach maintains two sets: "pool" and "already won". Each draw picks from the pool, and the moment someone is picked they leave the pool and are written into the winners set.

The advantage is that duplicates are structurally impossible — someone who has left the pool can never be sampled again. The cost is that the pool state must be maintained correctly, and if it is ever cleared by mistake the historical winners record must survive independently. That is exactly the mechanism Lucky Draw uses: winners are stored separately, so clearing the pool never affects the already-won list.

Mechanism 2: flag-based deduplication

Another approach gives every person a "has won" flag, sets it when they win, and filters flagged entries out when drawing.

It is simple to implement but has two weaknesses. First, the flag is tied to the name, so two people with the same name would cause the second to be wrongly treated as already won. Second, the flag usually lives in memory and disappears on a refresh. It is therefore better suited to a single small round.

Mechanism 3: rules per prize tier

If your rule is "anyone who won the grand prize cannot also win the first prize", cross-prize deduplication is mandatory. If the rule is "each prize is independent and repeats are allowed", then you should not deduplicate at all.

Decide the rule first, then configure the tool. Many on-site disputes are not technical failures but a rule that was never stated up front. Write it into the event notice: can one person win more than once?

What Lucky Draw does

The same applies to batch draws: in a multi-winner draw every winner leaves the pool individually and there are no duplicates within the batch.

Three cheap manual checks on the night

However reliable the software, add one human layer. It costs almost nothing:

  1. Show the list on the big screen: after each prize, leave the winners on screen for three seconds and let the room spot problems itself.
  2. Assign a verifier: have a colleague hold the prize distribution sheet and check each person on stage against the names on screen.
  3. Export as you go: export after every important prize so that if something goes wrong later you have a record to fall back on.
Pitfall warning: names drawn during rehearsal stay in the winners record. Always press "reset all" before the real event begins, or you will silently lose a quota — and that mistake is very hard to notice at the time.

Related reading

For the full on-the-night procedure see the on-site handbook, and for how to split prize budgets see the complete annual meeting plan.

💬Feedback