Random Role Assignment Generator
Assigns each person a role, and lets you set the rules that matter: somebody must take a particular role, somebody must not, and a role can need more than one person. If the rules cannot all be kept, the tool says which clashed rather than quietly ignoring one.
What this generator does
Takes the constraints a real role allocation has. The group and team generators split a list evenly and cannot be told anything else — not that a role needs two people, not that somebody is unsuitable for one. This accepts those as rules and either keeps all of them or names the ones it could not.
How to use this tool
- Enter the people, one per line.
- Enter the roles, one per line, with a number after a colon where a role needs more than one person.
- Add rules for anyone who must or must not take a particular role.
- Press Assign roles and read the status line before the result.
Understanding the controls
- People
- One per line. If there are more people than places across all the roles, the tool reports the shortfall before assigning anything rather than leaving somebody out silently.
- Roles
- One per line, with a number after a colon where the role takes more than one person — "Note taker: 2". A role with no number takes as many as it needs.
- Must be / must not be
- Rules, never broken. Use must be to pin someone to a role and must not be to keep them out of one. A contradiction between the two is reported rather than resolved by guesswork.
- Prefers
- A wish rather than a rule. Granted where possible; where it is not, the result names which preference lost. A bar always beats a preference for the same pairing.
- Seed
- Reproduces the same allocation, so a published assignment can be regenerated rather than redrawn into something different.
Worked examples
- Four people, four roles
- One each, with anyone pinned by a rule taking their role.
- A role needing two
- "Note taker: 2" takes exactly two people, and never three.
- A contradiction
- Someone pinned to a role they are also barred from is reported, and neither rule is applied.
Common use cases
- Classroom group-work roles where one pupil must not be the presenter again
- Meeting roles rotating across a team
- Project roles where only some people are trained for one of them
- Workshop roles with more than one person per role
- Any allocation where a plain shuffle would produce something unworkable
How this generator works
Pinned assignments are applied first and checked against the bars and the role sizes. Everyone else is placed by backtracking search, starting with whoever has fewest roles open to them, because that is where an impossible combination shows up soonest. The search escalates: it first tries to satisfy every preference as though it were a rule, and only relaxes them once no stricter arrangement exists — so a reported compromise is a genuine one rather than the first workable answer.
Randomness and fairness
Randomness decides only between options the rules leave open, and ties between equally suitable roles are broken at random rather than by list order — without which every unconstrained person would land in the first role. A seed switches to a deterministic, non-cryptographic generator so an allocation can be reproduced.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- Roles are modelled by how many people they need, not by how much work they are, so an even allocation may still be an uneven workload.
- Suitability is expressed only as a bar. There is no notion of who would be better at a role, so the tool cannot optimise for fit.
- Randomised assignment is the wrong approach for anything needing professional judgement. Use it where the roles are genuinely interchangeable.
- History is not carried between runs on this page — use a seed if you need the same allocation back.
Common mistakes
- Using a preference where a rule is meant
- Preferences can be overridden and rules cannot. If something genuinely must not happen, use must not be.
- Reading the allocation without the status line
- A partial result looks identical to a complete one. The line above the assignment says whether every rule held.
Privacy and your data
People, roles and rules are handled entirely in your browser and never uploaded. Nothing is stored between visits and nothing is written into the page address, which matters because a rule often records that a named person cannot do something. Analytics sees the number of assignments only.
Frequently asked questions
- What if the rules cannot all be met?
- The result is reported as impossible with the clash named, rather than an allocation that quietly breaks one of them.
- Can a role take more than one person?
- Yes — put a number after a colon, as in "Note taker: 2".
- How do I stop the same person getting a role twice in a row?
- Bar them from it with a must-not-be rule, or use the duty rota generator, which rotates roles across weeks by design.
Related generators
- Task Allocation GeneratorShare tasks out across a team with real rules — must do, must not do, capacity limits — and a clear answer when the rules cannot all hold.
- Random Shift Assignment GeneratorAssign staff to shifts that need a set number of people, with rules for who cannot work when and who must.
- Random Group GeneratorSplit a list into random groups of a chosen size, for activities larger than pairs or teams.
- Random Lane Assignment GeneratorRandomly order competitors into numbered lanes for a race or heat.