Random Team Generator
Paste your participants, pick a team count or a team size, and get balanced random teams whose sizes differ by at most one — computed entirely in your browser.
Generated Teams
How to Use the Random Team Generator
The Random Team Generator turns a list of participants into balanced, randomly drawn teams in a single click. Paste the names, choose whether you want to fix the number of teams or the team size, and the tool shuffles the list with a cryptographically secure Fisher–Yates algorithm before dealing members out in order. Because the deal is sequential and the sizes are computed from the participant count, no team ends up more than one player larger than any other.
Paste your participants into the text box, one name per line. Suppose you have 24 students: paste all 24 and blank lines are ignored automatically. You can paste a column straight from a spreadsheet or a form export without cleaning it first.
Choose how to split the group. Select "Number of teams" and enter 6 to get six teams of 4 players each (24 ÷ 6 = 4). Select "Team size" and enter 5 instead, and the tool creates five teams — four teams of 5 and one team of 4 — because 24 ÷ 5 rounds up to 5 teams.
Optionally name your teams. Type a comma-separated list such as "Lions, Tigers, Bears, Wolves, Eagles, Sharks" and each team card is labelled in order. If you supply fewer names than teams, the remaining teams fall back to the default numbered name.
Press Generate Teams. The tool applies a Fisher–Yates shuffle driven by crypto.getRandomValues and deals the shuffled players into the pre-computed sizes. With 24 players and 6 teams every team receives exactly 4; with 23 players and 5 teams you get sizes of 5, 5, 5, 4 and 4.
Review the cards and press Copy all teams. Each card shows the team name, its roster and the number of players, and the copy button places the whole draw on your clipboard in one labelled block ready to paste into an email or chat.
What Is a Random Team Generator?
A random team generator is a tool that divides a group of participants into teams whose membership is decided by chance rather than by a human chooser. You provide the list of names and the desired team count or team size; the generator returns teams with balanced sizes and a fair assignment. Random team selection matters because hand-picked teams are influenced by friendship, skill stereotypes and the order in which people are called out — biases that quietly undermine fairness and can leave the same people repeatedly together or apart. The generator works in two stages. First the full list of participants is shuffled using the Fisher–Yates algorithm, which walks the array from the last element to the first and swaps each element with a uniformly chosen earlier element. Every one of the n! possible orderings is equally likely, so no participant is advantaged by their position in the list. The random indices come from crypto.getRandomValues with rejection sampling, which removes the modulo bias that would otherwise make some positions very slightly more likely than others. Second, the shuffled list is dealt into teams whose sizes are computed in advance: with n players and k teams, every team gets the integer part of n/k and the first n mod k teams receive one extra member. This is the only split in which team sizes differ by at most one, which is the mathematical definition of a balanced division. Both stages run locally in your browser. Your participant list is never uploaded, and the draw is reproducible only by keeping the teams — nothing is stored and it cannot be replayed by anyone else. That privacy is deliberate: because there is no server, no account and no logging, the outcome cannot be influenced after the fact, which is exactly what you want for a classroom, a sports draft or a public giveaway.
Common Applications
1. Classrooms and group work: a teacher with 28 pupils who wants seven working groups gets exactly four pupils per group (28 ÷ 7 = 4). For a lab session needing pairs, entering a team size of 2 produces fourteen pairs with no one left out.
2. Sports and PE: a coach with 18 players splitting into three squads of six can generate the sides in seconds, or set a team size of 3 to build six small-sided teams for a tournament. Because the shuffle is uniform, no squad quietly collects all the strongest players.
3. Corporate workshops and offsites: 44 attendees split into 8 teams yields four teams of 6 and four teams of 5 (44 ÷ 8 = 5.5). That is the closest possible split, so no table is short-changed during a breakout exercise.
4. Hackathons and study groups: an organiser with 120 registrations can create 20 teams of 6 instantly, mixing departments and seniority so that every team has a spread of skills rather than clusters of colleagues who already work together.
5. Chores, rotas and volunteering: a household or team of 13 people divided into 4 groups gives sizes of 4, 3, 3 and 3, which is handy for rotating cleaning duties, on-call weeks or fundraising stalls without anyone feeling singled out.
Why Balanced Sizes Matter
Balanced teams are not just tidier — they are fairer. Imagine 23 volunteers split into 5 groups. The balanced rule gives sizes of 5, 5, 5, 4 and 4: the 23 players fill five groups as evenly as integers allow, and the largest team is a single person bigger than the smallest. If teams were formed by filling them one after another until the names run out, the last group could end up with one member while another has six, which is both visibly unfair and awkward to run.
The arithmetic behind the split is simple. With n participants and k teams, each team receives floor(n ÷ k) members, and the first n mod k teams receive one extra. For 23 and 5, floor(23 ÷ 5) = 4 and 23 mod 5 = 3, so three teams get 5 and two teams get 4. This is also why you cannot ask for more teams than you have people: every team must contain at least one participant, and the tool tells you so instead of leaving empty teams.
How the Fisher–Yates Shuffle Works
The Fisher–Yates shuffle walks the list from the last position to the first. At each position i it picks a random index j with 0 ≤ j ≤ i and swaps the two elements. When the loop finishes, every one of the n! possible orderings has exactly the same probability, so the first person in the list has no advantage over the last.
The random index j is produced by crypto.getRandomValues together with rejection sampling. Rejection sampling discards values that would fall outside a whole number of ranges, which removes the small modulo bias that creeps in when a 32-bit random number is scaled to an arbitrary range. A naive implementation — for example, sorting the array with a comparator that returns a random value — is not uniform and can produce a skewed distribution. Because this tool uses a uniform shuffle and a fixed deal order, the assignment of participants to teams is genuinely random.
Common Mistakes When Drawing Teams
The most common mistake is re-shuffling because the first result looks unfair. Redrawing when you dislike an outcome turns a fair one-off draw into an optional-stopping bias: the more times you redraw, the more likely you are to land on an arrangement that merely looks balanced. Generate the teams once and trust the math.
Other recurring mistakes include letting team captains pick in turn, which concentrates strong players in the earliest picks; using a sort with a random comparator, which is not a uniform shuffle; ignoring duplicate names, which can make one person appear on several teams; and assuming that a small random draw will look perfectly mixed. With eight people across two teams it is entirely normal to see five versus three on occasion. Finally, remember that teams built around constraints — keeping two people together, or never pairing certain others — should be arranged by hand, because a purely random draw ignores those rules by design.
Related Utilities
Frequently Asked Questions - FAQ
Are the teams really balanced?
Yes. The tool computes team sizes before dealing anyone out, so the largest team is at most one participant bigger than the smallest. With 23 players and 5 teams you always get sizes of 5, 5, 5, 4 and 4 — never a wildly uneven split.
Is the team selection genuinely random and fair?
Yes. Participants are shuffled with the Fisher–Yates algorithm using crypto.getRandomValues and rejection sampling, so every ordering is equally likely and no one is favoured by their position in the list.
Can I name the teams?
Yes. Enter a comma-separated list of team names and the cards are labelled in order. If you provide fewer names than teams, the remaining teams keep the default numbered name.
What happens if the same name appears twice?
Each line is treated as a separate participant, so two identical lines can end up on two different teams. Remove duplicates from your list beforehand if you want a single entry per person.
Is my participant list saved or sent anywhere?
No. Everything runs locally in your browser with native JavaScript. Your names, team settings and results never leave your device and are never uploaded or stored on a server.
Last updated: