How repeat winners actually happen
Looking back at incidents, the causes fall into four categories:
- 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.
- 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.
- 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.
- 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
- Winners are removed from the pool automatically and cannot reappear in later rounds
- The winners record is stored across all prizes, so the grand prize and the first prize cannot collide
- Resume mid-event is supported: close the page and come back and the already-won state is intact
- The winner list can be exported at any time for live verification and later publication
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:
- 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.
- Assign a verifier: have a colleague hold the prize distribution sheet and check each person on stage against the names on screen.
- Export as you go: export after every important prize so that if something goes wrong later you have a record to fall back on.
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.