How to use the team generator
A sample roster of 12 people is loaded so you can press Make teams right away. To use your own list, press Clear roster, paste names into Add names (one per line) and press Add.
- Under How to split, choose a number of teams (e.g. 3 teams) or people per team (e.g. 4 each). The preview shows the resulting team sizes instantly.
- Tap a name to mark someone absent for today. Absent people are left out of the teams but stay on the roster.
- Press Make teams to see one card per team. Not happy? Shuffle again redraws with the same settings.
- Share results with Copy as text, download a PNG with Save image, or send a Share link that shows exactly the same teams.
Entering and saving rosters
Write one person per line. After the name, add a skill and tags separated by commas or tabs: Liam, 4, M means skill 4 with tag "M", and Olivia, 3, F, GK has two tags, "F" and "GK". Numbers from 1 to 5 are read as skill; everything else becomes a tag. Columns copied from Excel or Google Sheets work as is.
Teachers who group students by number can enter a class size and press Fill with numbers. Skills and tags can be edited per person under Edit roster.
For a weekly club, save the roster once, load it on game day and tap the people who are missing. You can keep several named rosters; they are stored in this browser only and never uploaded.
How skill and gender balancing works
With Balance by skill on, teams are split so that their total skill scores are as close as possible, allowing for teams that have one extra person. People without a skill score count as the average of those who have one.
With Spread tags evenly on, people sharing a tag are distributed evenly across teams. Use "M" and "F" to balance mixed teams, or "GK" and "Setter" to spread positions. When both options are on, tag balance gets slightly more weight.
Under the hood, the generator starts from a random split and repeatedly tries swapping two people on different teams, keeping only swaps that do not make the balance worse, thousands of times. When several splits are equally balanced, one is picked at random, so shuffling again keeps the balance but changes the line-up.
Skill scores only need to be consistent within your group. If you already use grades or divisions, map the strongest to 5 and the weakest to 1.
Keep together and keep apart
Open Keep together / apart to pair two people as "Together" or "Apart". Keep car-poolers or buddies together, and separate the two strongest players or friends who always team up.
Together rules chain: A with B and B with C puts all three on one team. If a group is bigger than a team, or rules conflict (two people set both together and apart), a warning appears above the results. Rules are saved with the roster.
How the randomness works (fairness)
Every time you make teams, a new 128-bit seed is created with your browser’s cryptographic random number generator (crypto.getRandomValues), and every random choice comes from the xoshiro128** generator running on that seed. With balancing and rules turned off, the roster is shuffled with Fisher–Yates and cut into teams, so every possible split is exactly equally likely.
When the numbers don’t divide evenly, team sizes differ by at most one and the teams that get an extra person are chosen at random. The same seed with the same roster and settings always produces the same teams, so anyone who opens your share link sees exactly what you saw. The seed and time are shown under the results.
Tips for common situations
Suggested settings:
- Pickup soccer or basketball: add skill 1–5 and a "GK" tag, turn on both balance options, and name teams by color to match bibs.
- Mixed badminton or tennis: tag "M" and "F" to balance genders, and balance skill so the strongest players don’t end up together.
- Classroom groups: fill with numbers or paste the class list, and switch team names to "Group". Separate students who shouldn’t sit together with Apart rules.
- Company events: tag each person with their department and spread tags evenly to mix departments.
FAQ
What’s the difference between "Number of teams" and "People per team"?
"Number of teams" splits everyone as evenly as possible into that many teams. "People per team" works out how many teams are needed so that no team exceeds that size: 14 people at 4 per team gives 4 teams of 4, 4, 3 and 3.
What happens when the numbers don’t divide evenly?
Team sizes differ by at most one, and the teams that get an extra person are chosen at random. Skill balancing accounts for the larger teams.
I only want to balance boys and girls.
Tag each person "M" or "F" (or any labels you like) and turn on Spread tags evenly only.
Does "Shuffle again" keep the balance?
Yes. It reruns with the same settings and rules and a new seed, so you get a different but equally balanced split.
How do I share the teams?
Use Copy as text for chat apps, Save image for a PNG, or Share link so others can open the identical result.
Where is my roster stored?
Only in this browser’s local storage; nothing is uploaded. Opening a share link on another device brings the roster with it, and any roster that was already there is saved automatically as "Previous roster".