Mixed-ability groups
Tag reading levels #A #B #C and balance by them, so every group has a spread and stronger readers can model.
Live board · updates as you type
Split a class into random groups or teams in one click. Choose the number of groups or people per group, balance by tags, keep pairs apart, then drag names around, print or project.
24 names · 4 tags
The board updates as you type. New names join the groups with room. Add #tags after a name to balance.
Tags spread people evenly: one #helper per group, a mix of reading levels #A #B #C, a #leader each.
Pick a tag, then tap names to add or remove it.
Two people who should never share a group.
Names stay in this browser. Nothing is uploaded unless you save.
Drag names between groups, or tap a name to move itLock keeps someone in place on a shuffle
New names joined groups with room
Shuffle to rebalance everyone. Locked people stay put.
Save this class list? Keep it in this browser, or open it on any device with a free account (adults 18+). Pro keeps unlimited class lists in the cloud.
See ProHow it works
One name per line, straight from a spreadsheet or your gradebook. Up to 1,000 names. The board fills in as you go.
Choose how many groups, or how many people per group. Leftovers are spread out, so sizes never differ by more than one.
Tag names (#helper, #A) to spread them evenly, and add any pairs who should be kept apart.
Shuffle until it feels right, drag names between groups, lock anyone who must stay put, then print, export or present.
Grouping tips for teachers
Each one sets up the board above with the sample class, so you can see it work.
Tag reading levels #A #B #C and balance by them, so every group has a spread and stronger readers can model.
Tag your peer helpers #helper and make as many groups as helpers. Rotate roles like #leader and #scribe each week.
Pairs for quick talk, threes for discussion, fours for labs. With an odd count, one pair becomes a trio instead of leaving someone out.
Fresh groups each unit help students work with everyone. Keep pairs who distract each other apart, and lock anyone who needs a set table.
Every shuffle is a Fisher–Yates shuffle driven by your browser’s crypto.getRandomValues(), with rejection sampling so no position is favoured. Each arrangement of your class is equally likely.
With tags, tagged people are dealt out first, one group at a time, with random tie-breaks; everyone else fills the open seats in a fresh shuffle. Keep-apart pairs are checked on every try, and if one can’t be met you see exactly which pair, never a silent compromise.