Team Generator: randomly split any list of names into equal groups
Enter any list of names, choose 2 to 8 teams, and get balanced groups in one click. For skill-balanced teams, sort your names by ability level before generating — the generator distributes them randomly from your ordered list, so you can mix skill levels intentionally.
What is a random team generator
A random team generator takes a list of names and distributes them into groups using a randomized algorithm. Instead of picking teams by hand — where personal bias, social dynamics, or alphabetical ordering skew the results — a generator shuffles the entire list and deals members evenly across the requested number of teams.
The quality of a team generator depends entirely on the quality of its
randomness source. Cheap generators use Math.random(),
which is a pseudorandom number generator — fast but predictable if you
know its internal state. Spinness uses
crypto.getRandomValues(), a cryptographically secure
source that draws entropy from your operating system. The difference
matters when fairness is the goal: crypto randomness is unpredictable
even to someone who has seen every previous output.
How to use this tool
Type or paste names into the text box — one name per line. Select how many teams you need using the numbered buttons (2 through 8). Press "Generate teams" and the tool shuffles names instantly, displaying color-coded team cards. Not happy with the result? Hit "Shuffle again" for a completely new arrangement. Use "Copy results" to paste the teams into a message, document, or chat.
The generator works on any device with a modern browser — phones, tablets, laptops, classroom projectors. No installation, no account, no waiting. Every shuffle is independent: previous results have zero effect on the next one.
When to use a random team generator
Classrooms. Teachers split students into study groups, debate teams, or lab pairs. Random assignment removes social pressure and forces students to collaborate with people they might not choose themselves — a skill that matters beyond school.
Sports and recreation. Pickup basketball, volleyball leagues, recreational soccer — any time you have a group of unranked players and need balanced-looking teams quickly. For competitive play with skill tiers, pair this tool with a manual seed list sorted by ability.
Hackathons and workshops. Organizers need to mix participants from different companies, skill levels, or departments. Random grouping prevents cliques from forming and encourages cross-pollination of ideas.
Game nights. Board games, trivia contests, scavenger hunts — wherever teams need to be formed on the spot without lengthy negotiations about who plays with whom.
Work and project management. Rotate code review partners, assign on-call rotations, form cross-functional sprint teams. Random rotation prevents the same people from always pairing up and distributes workload more evenly over time.
How to create skill-balanced teams
Pure random assignment works well when all participants have similar skill levels. When skill varies significantly — a pickup basketball game mixing experienced players with beginners, for example — pure random can produce lopsided teams. The fix is to sort your name list by skill level before generating: put the strongest players at the top, weakest at the bottom, then generate. Because the generator shuffles and deals round-robin, the result naturally distributes top players across teams.
For more precise balancing, use a snake draft order: list players 1 to N by skill, then mentally assign team 1 gets pick 1, team 2 gets pick 2, team 2 gets pick 3, team 1 gets pick 4 (snaking back). This guarantees the most even skill distribution possible. Use this generator for the initial sort, then apply snake draft logic manually for the final assignment.
What happens with uneven team sizes?
When names do not divide evenly into teams, the generator adds one extra member to the first teams in the rotation. With 11 names and 3 teams: teams 1 and 2 get 4 members, team 3 gets 3. Because the shuffle is random before dealing, which team ends up with the extra person is also random — no team has a systematic advantage.
If perfect size equality matters for your activity, adjust your input to a divisible count: remove one name (or add a placeholder like "TBD") before generating. The generator never skips a name — every person in your list ends up on exactly one team.
How the randomness works
When you press "Generate teams," the tool calls the browser's Web Crypto
API (crypto.getRandomValues()) to perform a Fisher-Yates
shuffle on your name list. Fisher-Yates is the standard unbiased shuffle
algorithm: it walks through the array from the end, swapping each
element with a randomly chosen element from the remaining unsorted
portion. Combined with a cryptographically secure random source, every
possible ordering is equally likely.
After shuffling, names are dealt round-robin into the requested number of teams. If names do not divide evenly, earlier teams in the rotation get one extra member — but because the shuffle itself is random, which teams end up "earlier" is also random. No team has an inherent advantage. For the full technical details, see our randomness methodology.
All randomization on Spinness uses crypto.getRandomValues() — the browser's cryptographic random source. Learn how our randomness works.
The algorithm was originally described by Ronald Fisher and Frank Yates in Statistical Tables for Biological, Agricultural and Medical Research (1938) and later popularized by Donald Knuth in The Art of Computer Programming, Vol. 2 (1969). The Wikipedia article on the Fisher-Yates shuffle has a clear walkthrough of each step.
Frequently asked questions
How many people do I need to generate teams?
You need at least as many names as the number of teams you want. Two names and two teams is the minimum. There is no upper limit — the generator handles hundreds of names without slowing down.
Is the team assignment actually random?
Yes. Spinness uses crypto.getRandomValues, a cryptographically secure random number generator built into every modern browser. It draws entropy from your operating system, producing results that are statistically unpredictable. No seed, no pattern, no bias.
Can I generate more than 8 teams?
The current version supports 2 to 8 teams, which covers the vast majority of use cases. If you need more, you can run the generator twice with different halves of your list. Support for custom team counts is planned.
Are my names saved or sent anywhere?
No. Everything runs in your browser. Names are never sent to a server, stored in a database, or shared with any third party. When you close the tab, the data is gone.
What happens when names do not divide evenly into teams?
The generator distributes names as evenly as possible. If you have 11 names and 3 teams, two teams get 4 members and one team gets 3. The assignment of who goes where is still fully random.
Can I use this for classroom groups?
Absolutely. Teachers use random team generators to create fair study groups, assign lab partners, rotate reading circles, and organize group projects. The cryptographic randomness means no student can claim the grouping was biased.
Is my data private?
Yes. All randomization runs entirely in your browser — no names, inputs, or results are sent to any server. Spinness has no backend. Your data never leaves your device.
How is the randomness generated?
This tool uses crypto.getRandomValues() — the browser's cryptographic random source, not Math.random(). Every result is statistically unpredictable. See our Methodology page for the full technical explanation.