GenerateRandomSearch

Queue Simulator

The counter-intuitive thing about queues is that waiting time does not rise smoothly with load. At 50% capacity a queue is comfortable; at 95% it is a disaster; and the difference is not proportional. This simulates arrivals and service one event at a time and reports what happened, so the shape of that curve is something you can see rather than take on trust.

What this generator does

Simulates arrivals and service events directly rather than applying a closed-form formula. Each arrival joins one shared queue and is taken by whichever server frees up first, which is how a single-queue multi-server system actually behaves. Waiting times are recorded individually and the averages are computed from them, so the headline figure is a measurement rather than a prediction.

How to use this tool

  1. Set how many customers arrive per hour and how many one server can handle.
  2. Choose how many servers share the queue.
  3. Simulate, then raise the arrival rate a little and look at the wait again.
  4. Seed it to compare two configurations on identical arrivals.

Understanding the controls

Arrivals per hour
How many customers turn up in an average hour. Arrivals are Poisson, so they cluster rather than spacing evenly.
Served per hour, per server
Capacity of one server. Multiply by the server count for total capacity.
How many servers
One shared queue feeding this many servers. Two servers at half the speed each is not the same as one fast server, and this is where you can see why.
Hours to simulate
Longer runs give steadier averages. Short runs are noisy, which is honest rather than a fault.
Seed
Any word reproduces the same result exactly. Leave it empty and the browser's cryptographic generator is used instead.

Common use cases

  • Working out whether one more server would actually help
  • Showing why a service that copes at 80% load collapses at 95%
  • Sizing a support desk, checkout or helpline before committing
  • Teaching queueing intuition without the algebra
  • Comparing one fast server against two slower ones

How this generator works

Inter-arrival and service times are drawn from exponential distributions, which is what makes this an M/M/c model. Each customer is assigned to the server that becomes free soonest, and their wait is the gap between arriving and starting service. Traffic intensity is arrivals divided by total capacity; above 1 the queue grows without limit and the tool says so rather than quoting a tidy average.

Randomness and fairness

Arrival and service times are drawn at random, so two runs of the same configuration give different waits — that variability is the thing being demonstrated. A seed reproduces one run exactly and is therefore not cryptographically secure.

For how randomness is produced across the whole site, see how Generate Random works.

Limitations and good to know

  • This is an idealised model: Poisson arrivals, exponential service, one shared queue, nobody gives up and nobody is prioritised. Real queues break all of those.
  • It is a way to build intuition about how load and waiting relate, not a forecast for a specific operation.
  • Above a traffic intensity of 1 the numbers describe only the window simulated — a longer run would show longer waits.
  • Simulated runs are not kept. Seed a configuration if you want to compare it against another fairly.

Privacy and your data

Arrival rates, service rates and simulated waiting times are all computed in your browser and never leave it.