What the Random Dinosaur Generator produces
Open the page and there is already a dinosaur on it. No button to press first, no wheel to spin, no five-second reveal of a word the page had already chosen. You get one real genus from the fossil record, and under the name is the line almost every other random dinosaur generator leaves out: how to say it out loud.
A result looks like this:
Stegosaurus — STEG-oh-SORE-us
Late Jurassic · 155–145 Mya · Herbivore · 9 m (30 ft)
Found in Morrison Formation, western USA, and Portugal
The tail spikes have a name from a Far Side cartoon: palaeontologists really do call them the thagomizer.
Every roll carries the same six fields: the genus, a plain-English respelling with the stressed syllable in capitals, when it lived, what it ate, how long it got in metres and feet, and where its fossils come from — plus one fact worth repeating. "Mya" is millions of years ago, and it's a range rather than a date because a genus is around for a while.
Roll again gives you a new one. The ↻ button on a card replaces just that result and leaves its neighbours alone. Copy writes plain text, one line per dinosaur, in the form Stegosaurus — Late Jurassic, herbivore, 9 m — the shape that pastes into a worksheet or a group chat without reformatting.
Why roll a dinosaur instead of picking one
Because you already know which five you'd pick. Ask a room to name a dinosaur and you get Tyrannosaurus, Triceratops, Stegosaurus, Velociraptor and Brachiosaurus, in roughly that order, forever. Humans reach for the familiar when asked to be arbitrary — the same reflex that makes people choose 7 when asked for a random digit.
The pool here is 75 non-avian genera: 32 carnivores, 35 herbivores and 8 omnivores. The eight omnivores are the ones nobody names. Neither is Fruitadens, which was 0.7 m long and weighed less than a bag of sugar. Or Mononykus, whose arms were stubs ending in one thick claw, most likely for breaking into termite nests. Or Cryolophosaurus, found 650 km from the South Pole with a crest running sideways across its head like a comb. A roll hands you an animal you wouldn't have thought of, which is the entire point of rolling.
The second reason is what this corner of the web normally looks like. Search for a dinosaur randomizer and the results split three ways, and none of the three is the thing you asked for. There are fantasy-name generators that assemble creatures like Tyrannoraptor — fun, but not an animal, and no use at all to a kid writing a project. There are wheel-spinner pages that make you watch an animation to reveal a value the page decided before you clicked, framed by three display ads. And there are genuinely good reference databases parked behind a district login or a per-seat education subscription, priced by the classroom and renewed annually whether the class uses it or not.
This is just the generator. It loads, it rolls, you leave. It works the same whether you're a teacher with 28 kids and four minutes before the bell, a parent settling a dinner-table argument, or a game designer filling a bestiary.
How the random dinosaur generator works
The dataset is bundled into the page. After the page loads there is no network request, no API call and no server round-trip — every roll is decided in your browser from data that's already there. That's why it still works on school Wi-Fi that has given up.
The randomness comes from crypto.getRandomValues(), your browser's cryptographic random source, rather than a cheaper one. The 32-bit value it returns is then mapped to the pool by rejection sampling: draws that fall in the uneven remainder at the top of the range are thrown away and redrawn. It's a small detail with a real consequence — the naïve shortcut of taking a remainder makes the first few entries in a list slightly more likely than the last few, and with 75 genera that bias would quietly favour the Triassic every time you rolled.
Within one batch, results are drawn without replacement, so asking for six gives you six different animals rather than Triceratops twice. Roll again passes the genera currently on screen back in as exclusions, so a re-roll doesn't hand you the same dinosaur you were trying to get away from. The exclusion is dropped only when honouring it would mean returning fewer results than the pool could actually supply.
Feet are calculated from metres at load time rather than stored as a second column. Two hand-typed columns of the same measurement drift apart eventually, and nothing on screen would show it. One number, derived: Velociraptor's 2 m becomes 6.6 ft, and it can't disagree with itself.
Filtering by period and diet
Two dropdowns narrow the pool before anything is rolled, so a Cretaceous genus never survives a switch to Triassic. That ordering is what separates a real filter from a dinosaur randomizer that rolls first and hides the mismatches. Here's what each combination actually contains:
| Period | Span | Carnivore | Herbivore | Omnivore | Total |
|---|---|---|---|---|---|
| Triassic | 252–201 Mya | 7 | 5 | 2 | 14 |
| Jurassic | 201–145 Mya | 11 | 14 | 2 | 27 |
| Cretaceous | 145–66 Mya | 14 | 16 | 4 | 34 |
| Any period | 252–66 Mya | 32 | 35 | 8 | 75 |
The count control offers 1, 3 or 6. Six exists because the common case is handing six different dinosaurs to six different children at once. Dropping from 6 back to 1 keeps the first card rather than re-rolling everything, and going back up rolls only the slots being added — the animals already on screen survive the change.
Some filter cells are deliberately thin, and the tool says so instead of padding. Ask for six Triassic omnivores and there are only two in the world to give you:
Saturnalia — Late Triassic, omnivore, 1.5 mEoraptor — Late Triassic, omnivore, 1 m
That's every one we have for this filter.
Two results and a plain note, not an error and not a duplicated third row. The pool size sits under the button the whole time — "Rolling from 75 dinosaurs" — so you can see the cell shrink as you narrow it.
What the dataset refuses to include
Scientific accuracy is a requirement here, not a nicety, and a typechecker will pass a wrong fossil record as happily as a right one. So three rules are enforced on the data itself, and tested before the page ships.
Only actual dinosaurs. Pterodactylus, Pteranodon and Quetzalcoatlus were pterosaurs. Plesiosaurus, Elasmosaurus and Mosasaurus swam. Ichthyosaurus was an ichthyosaur. Dimetrodon is the one that catches everyone — a Permian synapsid, closer to you than to Tyrannosaurus, and already extinct before the first dinosaur existed. All nine are excluded by name. Plenty of dinosaur generators will hand you a Pterodactyl, and the audience most likely to notice is a nine-year-old who has read the book.
Real sizes, not screen sizes. Velociraptor is listed at 2 m — roughly turkey-sized, and feathered, which we know because one specimen preserves the quill knobs that flight feathers anchor to in living birds. The animal from the films is much closer to Deinonychus, which is also in the pool at 3.4 m. Both appear at the size they were.
A range where the science is unsettled. Spinosaurus comes out as 14–18 m rather than a confident single figure, because its original specimens were destroyed in 1944 and its proportions have been revised more than once since. Argentinosaurus is 30–35 m for the same reason: it's known from a handful of bones and every published length extrapolates from them. A single number would look more authoritative and be less true.
Birds are living dinosaurs — theropods by descent, sitting inside the same group as Velociraptor. The pool is restricted to non-avian dinosaurs anyway, because nobody typing "random dinosaur generator" is hoping for a pigeon. The footnote at the bottom of the tool is there because the fact is true, not because the tool is hedging.
Related generators
If you're building a lesson, a party game or a bestiary, the rest of the shelf is next door. The random Pokémon type generator rolls a typing for a monotype run or a fakemon design. The random year generator hands back a year with the facts about it attached, which pairs well with a timeline activity. For classroom logistics rather than content, the random name picker draws from a list you paste in — the honest way to decide who presents first.
For word games and writing prompts, there's the random word generator and the random letter generator. If you need plain numbers for dice, raffles or sampling, the random number generator covers any range. All of them run in the browser the same way the Random Dinosaur Generator does, and 10% of every dollar Microapp earns goes to charity, off the top, audited quarterly.
Frequently asked questions
Can the same dinosaur come up twice?
Not within one batch. Ask for three and you get three distinct genera — the tool draws without replacement rather than rolling three independent times, which is what stops a batch of six from containing two Triceratops. Across separate rolls, Roll again excludes whatever is currently on screen, so the next result won't repeat the last one either. It can come back later, though, and should: over enough rolls every genus in the filtered pool is equally likely, and a generator that permanently retired each result would stop being random.
Is the randomness actually random?
Yes, and specifically it uses your browser's cryptographic random source rather than the cheaper general-purpose one. The raw value is then mapped onto the pool by rejection sampling, which removes the small bias that a plain remainder introduces — without it, the genera listed earliest would be picked fractionally more often. For a party trick that doesn't matter. For a classroom that's going to roll 200 times in a term, it's the difference between a fair pool and a list with a thumb on it. Nothing about the result is pre-chosen, cached or weighted toward the famous names.
Can I get more than six at a time?
The page offers 1, 3 and 6, because those are the counts a person in front of a screen actually wants. The underlying engine accepts up to 25, which is reachable programmatically when something needs a classroom set in one call. Above 25 it stops rather than quietly truncating, and it will never pad a batch with duplicates to hit the number you asked for — if the filtered pool holds fewer dinosaurs than you requested, you get every one it has and a note saying so.
Why does a dinosaur appear before I click anything?
Because the job is "give me a dinosaur," and making you press a button first is a step that exists for the page's benefit, not yours. The first roll happens as the tool loads. That also means the fastest path to a second opinion is one click, not two — which matters when you're standing in front of a class and the first name out of the box is one you'd rather not read aloud cold.
Does anything I roll get sent anywhere?
No. The dataset ships with the page and every roll is computed in your browser, so there's nothing to send and no record of what you rolled. Once the page has loaded it keeps working with the network switched off — useful in a classroom, a basement or a plane. Copying a result puts text on your clipboard and nowhere else.
Why isn't there a picture of the dinosaur?
Because good palaeoart belongs to the artists who made it, and we don't hold rights to any. Shipping an illustration we couldn't license, or a generated approximation that gets the posture wrong, would be worse than shipping none — a wrong picture of Spinosaurus teaches something false more efficiently than any caption can undo. What you get instead is the locality, the measurements and the pronunciation, which are the parts you can check, cite and read aloud.
What can I use this for besides schoolwork?
Naming things, mostly. Teams, D&D encounters, servers, fantasy-league squads, a group chat's ongoing argument about which dinosaur would win. Plenty of people use the Random Dinosaur Generator as a research prompt: roll six, pick the one you've never heard of, and go and read about it — that's how most people meet Therizinosaurus, whose claws reached about a metre and were used on plants. It's free to use and there's no account to make.