Skip to content
Randomizer · Teams

World Cup Team Randomizer

Split players into balanced teams using pot seeding and snake distribution. Skill levels and roles are automatically optimised — everything runs in your browser.

Runs in browser Snake draft Crypto-secure
Skill level

No players yet

Add players above or use bulk import to get started.

All processing happens in your browser — no data is sent anywhere.
Number of teams
2
Team names

Add players and click Generate teams to see results here.

Guide

How to create balanced teams

  1. 1
    Add your players

    Enter each player with their name, role (Developer, Designer, etc.), and skill level (Senior, Mid, or Junior). Use bulk import to paste a whole roster at once.

  2. 2
    Set the number of teams

    Use the stepper to choose between 2 and 8 teams. The algorithm will warn you if teams will be uneven, but will still distribute players as fairly as possible.

  3. 3
    Choose a naming scheme

    Pick from World Cup countries, color names, fun nicknames, or enter your own custom team names.

  4. 4
    Generate teams

    Click Generate teams (or press G). Players are sorted into skill pots (Senior / Mid / Junior), shuffled, and then distributed using a snake draft for maximum fairness.

  5. 5
    Review the balance indicator

    The balance bar shows the strength spread between teams. A spread of 0–1 is Balanced, 2–3 is Mostly balanced, and 4+ is Uneven.

  6. 6
    Copy or regenerate

    Copy the results to your clipboard in a formatted plain-text summary, or regenerate to get a fresh draw from the same player pool.

Frequently asked questions

How does the team distribution algorithm work?
Players are sorted into three skill pots (Senior, Mid, Junior). Each pot is shuffled independently using a cryptographically secure random source. Players are then distributed across teams using a snake draft — the first player goes to team 1, the next to team 2, and so on; when the last team is reached, direction reverses. A second pass then swaps players between teams to improve role diversity where possible.
What is a snake draft?
A snake draft distributes items in a zigzag pattern: forward through all teams, then backward, then forward again. This ensures that no single team gets all the top-ranked players — each team receives a similar mix of skill levels.
Is the randomisation truly fair?
Yes. The tool uses the Web Crypto API (crypto.getRandomValues) with rejection sampling to eliminate modulo bias. Every valid ordering of players within a skill pot is equally likely.
What does the balance score mean?
Each player contributes a skill score: Senior = 3, Mid = 2, Junior = 1. Team strength is the sum of its members scores. The spread is the difference between the strongest and weakest team. A spread of 0 means all teams are identical in strength.
Can I have uneven team sizes?
Yes. If the player count does not divide evenly by the number of teams, some teams will have one extra player. The tool warns you and distributes the extras as fairly as possible using the snake pattern.
Is my player data stored or sent anywhere?
No. All processing happens entirely in your browser. Player names, roles, and skill levels are never transmitted to a server, stored in a database, or logged.
Can I import a whole roster at once?
Yes. Click Bulk import and paste your player list in CSV format: one player per line, with Name, Role, and Skill separated by commas. Invalid rows are listed with an explanation; valid rows are imported when you click Import.
What happens when I edit or remove a player after generating teams?
The results are marked as stale with an amber banner. Click Regenerate to produce a fresh draw with the updated player pool.
How do I use keyboard shortcuts?
Press G to generate or regenerate teams, R to regenerate, and C to copy the results. Shortcuts are disabled when focus is inside a text input, dropdown, or button.