tooltulipA tool for everything
All toolsCategoriesSelectionsAbout
Tool index ↗
All tools
Workshop and classroom utility

Random Team Generator

Randomly split names into teams for workshops, classroom activities and casual games. Balanced means team size, not skill.

Names are processed locally in your browser, not uploaded or saved. Refreshing clears drafts and assignments.

Participants

0 / 102,400 UTF-8 bytes

2–500 participants; up to 100 Unicode code points per name and 100 KiB UTF-8 input. Edges are trimmed and blanks skipped. Identical names stay as separate people. Refreshing clears all drafts.

0 participants; 0 blank lines skipped.

Add a valid list and positive whole-number sizing to preview the team count and sizes.

How to generate random teams

  1. Paste one participant per line or import one UTF-8 .txt file. Check the count, skipped blanks and repeated-name warning.
  2. Choose Number of teams or Maximum people per team, then enter a positive whole number. Review the expected team count and size distribution.
  3. Press Generate teams. Copy one team, copy all, or download the complete random-teams.txt result.
  4. Shuffle again for a new draw; Undo shuffle restores the immediately preceding assignment exactly. A new draw can legitimately repeat an assignment.

Worked example: ten participants, three teams

Alice
Bob
Charlie
Diana
Emil
Fatima
Grace
Hugo
Iris
Jamal

With three teams, the sizes are 4, 3 and 3. A random team label receives the extra place, so the four-person team is not always Team 1. Every participant appears exactly once.

Maximum people per team set to 4 also produces three teams of 4, 3 and 3. For nine participants with a maximum of 4, the result is three teams of 3, not 4, 4 and 1. Five participants can make five one-person teams; one-team mode includes everyone.

Names, blank lines and duplicate participants

CRLF, LF and lone CR separate entries. Edge whitespace is trimmed, blank lines are ignored and counted, and interior spaces and displayed spelling are preserved. One terminal line separator does not create an extra blank entry. Names are not split on commas or interpreted as HTML.

Each valid source line has its own internal ID based on its line position, independent of its name. Exact repeated names remain separate participants and appear separately in the export. The nonblocking warning references their original lines. Case or Unicode normalization is not used to merge names. Edit repeated names if you want to distinguish people; do not automatically deduplicate a participant list.

Randomization and size balancing

Participants are shuffled with Fisher–Yates over their IDs. Bounded integers come from crypto.getRandomValues with rejection sampling, avoiding modulo bias. The same source randomly chooses which team labels receive the extra places. There is no random sort comparator, name-based selection or fallback to Math.random.

For n participants and t teams, the base size is floor(n/t); exactly n % t teams get one extra person. Largest and smallest sizes differ by at most one. Maximum-size mode uses t = ceil(n/maximum), then the same balanced allocation, so no team exceeds the cap.

Cryptographic randomness must be available; otherwise an actionable error is shown and inputs are preserved. Randomness is intended for casual grouping, not certified or audited draws. Repeated assignments are possible and do not trigger hidden rerolls.

Limits, outdated results and exports

Limits are 2–500 participants, 100 Unicode code points per trimmed name and 100 KiB total UTF-8 input. Both sizing modes accept integers from 1 through the participant count; invalid values are not clamped or repaired. These small bounds keep parsing and generation on the main thread without a worker or added dependencies.

Editing names or sizing keeps the prior assignment visible but clearly marks it outdated. Copy, download, shuffle and Undo shuffle are unavailable until a new assignment is generated. Clear / Reset, import and example actions offer one-step in-memory Undo. File reads and clipboard replies are revision-guarded to discard obsolete completions.

UTF-8 .txt imports remove one initial BOM; invalid encoding or oversized files leave the old input intact. Downloads use numbered team headings, sizes and member names in visible order, preserve repeated names, and contain no timestamps, device details or source paths. Copy team includes its heading, size and members. Clipboard denial exposes the requested text for manual copying.

This release balances size only. It does not rank skills, infer gender or age, select captains, enforce keep-apart constraints, create tournament brackets, award prizes, send invitations or retain history. Inputs are not put in URLs, analytics or persistent storage.

Keep exploring

Related tools

List comparison toolFind shared and exclusive entries across two lists.Duplicate Line RemoverClean text lists, but remember duplicate names may represent different people.
Compare tools for this task:Generator tools

How was this tool?

Help us improve Random team generator.

Don't include sensitive data.

0/300

Opens your email app; you send it there. No email app? Copy your comment and email feedback@tooltulip.com.

tooltulip

Small tools. Big help.

All toolsFeatured toolsCategoriesAboutPrivacy
feedback@tooltulip.com Suggest a tool
© 2026 ToolTulip. All rights reserved.ToolTulip · An ongoing project

Optional analytics help us see which tools are used. No tool inputs are sent. Privacy