Ranked Ballot Election Generator
Give the same ranked ballots to first past the post, Borda count and instant runoff, and they can elect three different candidates. That is not a bug in any of them — it is Arrow's theorem showing up in a worked example. This generates ballots, counts them every way, and builds the head-to-head table separately, so you can see whether the winner was someone a majority would have preferred to reject.
What this generator does
Generates a full ranking from every voter, then counts them by first preferences, Borda score and instant-runoff elimination, and separately builds the complete head-to-head matrix to identify any Condorcet winner.
How to use this tool
- Choose how many candidates and voters.
- Generate, and compare the four results.
- Read the head-to-head table: each cell is how many voters preferred the row to the column.
- Re-run until the methods disagree, which happens more often than most people expect.
Understanding the controls
- How many candidates
- Between 3 and 6. With only two candidates every method agrees, which is precisely why the disagreements are interesting.
- How many voters
- Each casts a complete ranking. Small electorates disagree more often, because a handful of ballots can flip a round.
- Seed
- Reproduces the same ballots, which matters when an example is being used to make a point.
Common use cases
- Demonstrating that voting method choice changes the winner
- Teaching Condorcet winners and Condorcet cycles concretely
- Producing worked election examples with full ballot data
- Comparing instant runoff against first past the post on the same votes
- Generating discussion material for an electoral reform session
How this generator works
Each voter is given a random full ranking. First preferences give the plurality count; positional scores give the Borda count; repeatedly eliminating the lowest first-preference candidate and redistributing gives the instant-runoff result. The head-to-head matrix is built directly from the ballots and is used by none of those methods, which makes it an independent check: a Condorcet winner beats every rival in it, and any method electing someone else has passed over a candidate a majority preferred. Before display every pair is confirmed to account for every ballot, and any declared Condorcet winner is re-tested against every rival.
Randomness and fairness
Uses your browser's cryptographic random source to generate the ballots by default. A seed switches to a reproducible sequence, which is deterministic and not cryptographically secure.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- Ballots are random rather than realistic: real electorates cluster, so genuine elections have more structure and slightly fewer paradoxes.
- Every voter ranks every candidate, so truncated and equal-ranking ballots are not modelled.
- Ties are broken by name so results are reproducible; a real election needs a declared tie-breaking rule.
- Only four counting methods are shown — approval, STAR and Condorcet completion methods each behave differently again.
Privacy and your data
Ballots are generated and counted in your browser. Nothing is transmitted, and no real vote is involved at any point.
Related generators
- Decision Matrix GeneratorScore options against weighted criteria — with cost and risk counting the right way round, and a check on how solid the answer is.
- Seat Apportionment GeneratorTurns vote totals into whole seats by D'Hondt, Sainte-Laguë or largest remainder, with every allocation summing exactly and compared against its quota.
- Stable Matching GeneratorPairs two sides by their full preference lists and then tests every unmatched pair for a mutual incentive to defect, which is what stability actually means.
- Weighted Yes/No Decision GeneratorGet a yes/no answer with an adjustable bias, e.g. 70% likely to say yes.