Winner Selection
The mathematics of fair giveaway draws
Overview
How winners are fairly selected
Swisserways uses a weighted lottery system to select winners. Your chance of winning is directly proportional to the number of entries you've earned through completed tasks and bonuses.
Entry Calculation
How your total entries are determined
Your total entries for a giveaway are the sum of all task entries plus any booster bonuses you've earned.
The Formula
Your total entries are calculated as:
Example Calculation
Consider a giveaway with 3 tasks:
Task A (Join Discord): 1 entry
Task B (Follow Twitter): 2 entries
Task C (Subscribe YouTube): 3 entries
Booster bonus: +2 entries
If you complete all tasks and are a server booster:
Total = 1 + 2 + 3 + 2 = 8 entriesWeighted Lottery
How the entry pool works
The winner selection uses a weighted lottery where each of your entries represents one "ticket" in the drawing pool.
The Entry Pool
Imagine a pool containing one ticket for each entry from every participant. If you have 6 entries and another participant has 3 entries, the pool contains 9 tickets total - 6 with your name and 3 with theirs.
The total pool size is the sum of all participants' entries:
Visual Example
For a giveaway with 3 participants:
Total pool: 10 tickets
Win Probability
Calculating your chances
Your probability of winning is simply your entries divided by the total pool size.
Probability Formula
Your win probability is calculated as:
Probability Example
Using the previous example with 10 total entries:
Note
Multiple Prizes
When a giveaway has multiple prizes, winners are drawn one at a time. Each user can only win once, so after someone wins, they're removed from the pool for subsequent drawings.
Complete Example
A worked-through scenario
Scenario
A giveaway with:
- 2 prizes to give away
- Tasks worth 1, 2, and 5 entries
- Booster bonus: +3 entries
Participants
Completes all tasks + is boosting
1 + 2 + 5 + 3 = 11 entriesCompletes all tasks, not boosting
1 + 2 + 5 + 0 = 8 entriesOnly completes first task
1 + 0 + 0 + 0 = 1 entryThe Drawing
Total pool: 11 + 8 + 1 = 20 entries
First Prize Draw
Second Prize Draw (assuming Alice won first)
Alice is removed from the pool:
New pool: 8 + 1 = 9 entries
Cryptographic Fairness
How we ensure truly random selection
We use industry-standard cryptographic methods to ensure winner selection is completely random and unbiased.
Fisher-Yates Shuffle
The entry pool is shuffled using the Fisher-Yates algorithm, which guarantees that every possible ordering has an equal probability of occurring.
Web Crypto API
Verification
The algorithm runs server-side with comprehensive logging. Each winner selection is recorded with timestamps, entry counts, and pool sizes for auditability.
Shuffle Visualization
Watch how the entry pool gets shuffled step by step
Winner Validation
Ensuring winners are legitimate
Before a winner is confirmed, we verify they're still eligible. This is called "lazy validation" - we only check winners, not all entries.
Discord Membership Check
If the giveaway required joining a Discord server, we verify the selected winner is still a member. If they left the server, they're disqualified and a new winner is drawn.
Automatic Reroll
Invalid winners are automatically removed from the pool and a new winner is drawn. This continues until all prize slots are filled with valid winners or the pool is exhausted.