GenerateRandomSearch

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

  1. Enter the people, one per line.
  2. Enter the roles, one per line, with a number after a colon where a role needs more than one person.
  3. Add rules for anyone who must or must not take a particular role.
  4. 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.