To generate random teams from a list, paste your roster into a local tool, set the number of groups you want, and let an unbiased shuffle place every name into exactly one team. The result is a set of balanced groups whose sizes differ by at most one person, even when the count does not divide evenly, so you do not have to top up the first team by hand or argue about who counts as the leftover person. With the Random Team Generator, the entire operation runs in your current browser tab using the page's cryptographically secure random source, which means the roster is never uploaded, saved to an account, or sent to a server before, during, or after you click the button. The page does not pick a team while it is loading and does not quietly reuse a previous result, so each click of the Generate button is a fresh draw from a fresh random source. That combination of balanced output and local-only processing makes the same workflow usable for a class list of minors, a workshop of colleagues, a volunteer sign-up, a game-night guest list, or any other roster of names you would rather not hand to a third-party service. It also keeps the workflow fast enough to repeat on the spot if attendance changes, a participant arrives late, or someone in the room asks for a redraw.
The reason this works for so many everyday situations is that the underlying task is simple. You have a list. You want it divided into a chosen number of groups. You do not want to pick people yourself or be the one who decides who plays with whom. A reliable local tool removes the awkwardness of that choice and gives every name the same chance of landing in any group.

What the tool actually does
Random Team Generator is a partitioning tool. It takes one list and produces several smaller lists, with the constraint that every input appears exactly once in the output and that each output list is roughly the same size. It is not a list randomizer, which only changes the order of a single list, and it is not a random name picker, which selects one winner from a list. Those three tasks look similar but solve different problems, and mixing them up usually means you end up redoing the draw by hand.
| Tool type | Input | Output | Use it when |
|---|---|---|---|
| Random Team Generator | One roster of names | Several balanced groups | You need to split a room into teams |
| List Randomizer | One roster of names | The same roster in a new order | You only need a fresh running order |
| Random Name Picker | One roster of names | A single chosen name | You need one pick, not a split |
Knowing which job you have matters more than it sounds. A shuffled order does not give you teams, and a single winner does not give you a partner for a paired activity. If you only want one outcome, the smaller tool is faster and clearer; if you want groups, the partitioning tool is the one that does the work, and it keeps team sizes close enough that nobody ends up as the obvious leftover.
How to generate random teams from a list
The full workflow is short and fits inside one browser tab. Each step has a single job, and the steps are designed so you can verify the result before you commit to it in front of a room.
- Open the Random Team Generator page in your browser.
- Paste your roster into the names field, one name per line or several names separated by commas. Blank lines and extra commas are ignored, so you can format the list for readability without breaking anything.
- Enter the number of teams you need. The tool only accepts a positive whole number that does not exceed the number of non-empty entries, which prevents empty groups and makes the result usable as soon as it appears.
- Select Generate teams. The page reads the non-empty entries, removes leading and trailing spaces from each one, runs an unbiased shuffle, and slices the result into groups whose sizes differ by at most one.
- Review the displayed teams. Each non-empty entry should appear exactly once, and the visible counts should match what you expect.
- Share the result by reading the team names aloud, copying them into a chat or document, or pasting them onto a whiteboard or sign-up sheet. If attendance changes, edit the roster and generate again rather than moving people between old groups by hand.
A useful habit is to decide how many groups you need before sharing your screen. Once the roster is pasted, glance at the visible count of names the page shows you to confirm it matches what you expect, then generate once for the room. Hitting the button a second time gives you a fresh draw, which is helpful if a participant arrives late or if someone wants to redraw because of a late arrival or a complaint.
Why the groupings stay balanced
The tool uses the Fisher-Yates shuffle to reorder the roster, drawing randomness from the browser's Crypto.getRandomValues source at the moment you click Generate. That combination gives every position in the shuffled array the same probability of holding any given name, which is the standard way to keep a draw unbiased. After the shuffle, the tool slices the reordered list into the number of groups you requested and randomizes which group labels receive any leftover entries.
The result is a clean partition. With ten people and two teams, both teams get five names. With ten people and three teams, the sizes land at four, three, and three. With seven people and three teams, the largest team has only one more person than the smallest, producing sizes of three, two, and two. That last case is the one most manual splits get wrong, because people tend to top up the first team until it is full and then move on, leaving uneven leftovers and a clear sense of who was placed last.
Because randomness is drawn fresh each time, the page never reuses a previous result. The button does not silently pick a team while the page is loading, and there is no cached assignment from the last time you opened the tab. If you want a different grouping, you simply click Generate again and the page produces a new partition from the same roster.
Formatting your roster for a clean result
Two input styles are accepted, and you can switch between them based on where your list already lives. If the names come from a typed list, one name per line is the most readable format. If the names come from a spreadsheet column or an email signature block, a comma-separated string is usually faster to paste in. The tool trims leading and trailing spaces from each entry, so accidental spaces at the start or end of a line do not create blank-looking names that throw off your visible count.
Repeated names are preserved as repeated entries. That behavior is sometimes useful, for example if you want one household to count as two chances in a casual draw, but it also means a stray duplicate in your list will quietly double that person's odds of appearing. If every person must appear exactly once, scan the list for duplicates before generating and remove anything you did not mean to repeat.
Blank lines and stray commas are ignored, which lets you paste a long list straight from a notebook or a chat thread without cleaning it up first. The trade-off is that you should glance at the visible count the page shows you before clicking Generate, because the page reports the number of non-empty entries it actually read, not the number of lines you pasted. A pasted list with five blank lines between ten real names still reads as ten.
When a random draw is the right starting point
A random draw is most useful when the constraint is just headcount. Classroom practice groups, PE class scrimmages, icebreakers, study circles, casual workshop activities, game nights, and volunteer shifts all fit this pattern. In each case, the only rule that matters is that the groups are roughly equal and that nobody had to volunteer or be picked last. The transparent randomness of a tool-based draw also removes the social cost of being the person who decides, because the tool made the call and not you.
A random draw is not enough when the groups must meet real-world constraints. The tool does not infer skills, friendship preferences, accessibility needs, conflicts, prior experience, languages spoken, or demographic information, because none of that is in the list you paste. If a group must contain a facilitator, a specific skill mix, compatible schedules, equal experience, or a safe pairing, you need a different planning step on top of the random partition. Use the tool for the random part, then adjust by hand or by another method before assigning work that affects evaluation, pay, safety, legal obligations, or personal wellbeing.
A practical pattern is to keep the original list elsewhere, generate the partition once, and reuse that original list if you need to redraw because a participant is late. Treating the partition as a starting point rather than a final decision lets you keep the speed of a random draw and the fairness of manual review at the same time, and it gives you a clean record of who was on the original roster if anyone asks how the groups were chosen.
Pairing the tool with how the activity actually runs
Once the groups appear, the rest of the activity usually decides how the names are used. For a quick icebreaker, reading each team aloud and pointing at the next speaker is enough. For a longer workshop, copying the displayed teams into a shared document or a whiteboard lets people find their group without crowding around the screen. For a recurring class, keeping a copy of the generated teams in a sign-up sheet gives you a record you can refer back to if a student asks where they were placed.
If the activity has a fixed structure, such as a four-station rotation or a paired discussion, generate the partition to match that structure. A four-station rotation calls for four teams, a paired discussion calls for groups of two, and a jigsaw activity often calls for a home group plus expert groups whose sizes are set by the lesson plan. Picking the number of teams to match the activity, rather than picking a round number and then trying to fit the activity into it, is the single biggest reason a random draw feels fair in practice.
For a deeper look, see Combine Two Words Into One Blended Name.
For a deeper look, see Random IP Generator by City: Safe RFC Ranges Explained.