Split a class list into randomly assigned groups or teams for projects and activities.
The Random Group Generator takes a list of student or team member names and splits them into randomly assigned groups, either by specifying how many groups you need or how many members each group should contain. Group assignments for class projects, lab partners, discussion sections, or classroom activities are often done fairly by random draw rather than letting students self-select, since self-selected groups can leave some students without a group, cluster friend groups together in ways that do not mix ability levels, or simply take up valuable class time that could be spent on the activity itself.
To use it, list every student or member's name, one per line or separated by commas, then choose whether you want to specify the total number of groups (for example, "make 5 groups" from a class of 30) or the number of members per group (for example, "4 students per group," letting the tool work out how many groups that produces). Enter the corresponding number and press "Generate Random Groups." The tool shuffles the full list into a random order and then divides it evenly across the resulting groups, distributing any remainder as evenly as possible so that no single group ends up with noticeably more or fewer members than the others purely by chance.
This is useful for a wide range of classroom and study situations beyond just project teams: randomly assigning lab partners at the start of a semester, splitting a large lecture into smaller discussion or tutorial groups, dividing a class for a debate or quiz competition, or organizing peer-review pairs for reviewing each other's essay drafts. Because the shuffle is genuinely randomized each time you press the button, running the generator again with the same name list and settings will typically produce a different grouping, which is useful if an instructor wants to reshuffle groups partway through a term for a fresh set of collaborations.
The tool performs a purely random split and has no way to account for factors an instructor might want to consider, such as balancing groups by academic performance, avoiding placing certain students together, or ensuring language or accessibility needs are distributed sensibly; for those more nuanced requirements, use the random output as a starting point and manually adjust specific placements afterward rather than relying on the automated shuffle as a final, unreviewed assignment.
All shuffling and grouping happens instantly using JavaScript in your browser, so a class list of names, which some instructors may consider containing personal information, is never transmitted or stored anywhere outside your own device.
For recurring group activities across a full term, keeping a copy of previous group assignments alongside newly generated ones can help an instructor deliberately avoid repeating the exact same pairings too many times in a row, even though the shuffle itself has no memory of earlier sessions and treats every new generation independently.
When group size matters for a specific activity format — for example, exactly three members needed for a particular lab setup with three stations — double-check the generated group sizes against your activity's actual requirements before finalizing assignments, since an uneven remainder is distributed automatically but may not always match a rigid physical or logistical constraint of your specific activity.
Yes, choose 'Members per group' in the split-by option and enter the desired group size; the tool calculates how many groups that produces from your full name list.
The tool distributes any remainder as evenly as possible across the groups, so some groups may have one extra member rather than leaving a small leftover group at the end.
No, each time you press Generate Random Groups the list is reshuffled independently, so running it again with the same names will typically produce a different set of groups.
No, this tool performs a purely random shuffle. For those more specific requirements, use the random output as a starting point and manually adjust individual placements afterward.
No, the name list and generated groups exist only in your browser's memory for the current session and are not transmitted to a server or saved after you leave the page.