Random Team Picker
Paste names, pick how many teams, get a fair random split. Re-roll, copy, or share a link.
Frequently asked questions
How does the random team picker work?
Paste your names (one per line or comma-separated), choose how many teams or how many people per team, then click Generate. The tool performs a Fisher-Yates shuffle using crypto.getRandomValues — every arrangement is equally likely — then divides the shuffled list across your teams. Hit Re-roll for a fresh draw any time.
Is the shuffle truly fair?
Yes. Fisher-Yates with crypto.getRandomValues is the gold standard for in-browser randomness. Every permutation of your names is equally likely, so there is no bias based on the order you typed names. The same API powers cryptographic key generation in browsers.
Can I split by team size instead of number of teams?
Yes — toggle "People per team" and enter the team size. The tool calculates how many teams that produces. Any remainder (people who don't fill a complete team) are distributed one per team starting from Team 1, so teams stay as even as possible.
What happens when names don't divide evenly?
Remainders are spread across teams one by one. With 14 names in 3 teams you get sizes 5, 5, and 4. The tool shows the count in each card header so you can see the distribution at a glance before you accept it or re-roll.
How do I share my team assignments?
Click Share after generating. The roster, settings, and result are encoded into the URL fragment. Copy that link and anyone who opens it sees the same team assignments instantly — no re-entry needed.
Are my names sent to a server?
No. Everything runs in your browser's JavaScript engine. Open DevTools → Network while clicking Generate — there are zero outbound requests. Your roster never leaves your device unless you copy the share URL yourself.
What's the maximum number of names?
No hard limit — the tool handles hundreds of names comfortably. For very large rosters (500+) the share URL becomes long, so copy the text output instead and paste it where needed.
How does the captain feature work?
Toggle "First name is captain" before generating. After the shuffle, the first person assigned to each team gets a ★ captain marker. Captains are random — simply whoever landed first in that team after the shuffle.
What events is this useful for?
PE class, office activities, sports drafts, trivia nights, escape rooms, Codenames, Secret Santa pairings, hackathons, game nights — any situation where you need a fair, impartial random draw. If you don't love the split, just re-roll.
Does it work offline?
Once the page loads, all logic runs locally. Disable Wi-Fi and it still works. Bookmark it or add to your Home Screen on iOS or Android for quick access anywhere.
How to use
Step 1: Paste or type names in the text box, one per line or comma-separated. The name count updates instantly so you can verify you haven't missed anyone.
Step 2: Choose your split mode. "Number of teams" divides the group into exactly N teams. "People per team" creates as many teams as needed so each has N members, with at most one shorter team if the count doesn't divide evenly.
Step 3: Click Generate. Teams appear in cards below. If you want a different draw, click Re-roll — each click runs a fresh cryptographically random shuffle.
Step 4: Click Copy to grab a formatted plain-text list, or click Share to copy a URL that recreates the same split for anyone you send it to.
Worked examples
PE class, 24 students, 4 teams: Paste the class roll, set "Number of teams" to 4, click Generate. Each team gets 6 students. Re-roll until the athletic balance feels right to you.
Office trivia night, 13 people, teams of 3: Switch to "People per team", enter 3. You get four teams of 3 and one person who gets distributed — so three teams of 3 and one team of 4. Hit Re-roll to mix it up.
Hackathon, 30 developers, 5 teams with captains: Paste the attendee list, set 5 teams, toggle "First name is captain". Each team card shows a ★ captain picked at random from the shuffled list.
About fair random team splitting
The most common mistake in manual team splitting is unconscious bias — teachers often put the strongest students first, friends naturally pair up, and groups cluster by physical proximity. A random algorithm bypasses all of that in one click.
This tool uses the Fisher-Yates (Knuth) shuffle, the algorithm behind every serious random-ordering problem: card shufflers, playlist randomizers, A/B test assignment. The shuffle processes the list from the end to the start, swapping each element with a randomly chosen earlier element. Using crypto.getRandomValues for the random index means each step draws from a cryptographically strong entropy source — the same one browsers use to generate TLS keys — so the output is indistinguishable from a theoretically perfect shuffle.
After shuffling, the list is divided sequentially into teams. With N names and K teams, the first N/K names go to Team 1, the next N/K go to Team 2, and so on. Because the pre-division order is already random, there's no meaning to which team ends up slightly larger — it's purely an arithmetic remainder, not a quality judgment.
The captain feature is a labelling convenience, not a weighted draw. It marks the first person in each team after the shuffle. If you want a deliberate captain draft based on skill or seniority, do the split first, then assign captains manually.
The shareable URL encodes your roster and teams into the URL fragment — the part after the # sign. URL fragments are never sent to a server; they live only in the browser. Anyone opening the link sees the same teams without any data touching a server. The URL is self-contained and works across devices.
All processing happens in your browser. There are no accounts, no server-side code, and no analytics beyond a Cloudflare page-view count that is IP-anonymized by default. Your names are private by construction — there is no mechanism by which they can be transmitted even if we wanted to.