Random Pokémon Type Generator

Types per roll
How many

Rolling a type…

Pokémon is a trademark of Nintendo, Creatures Inc. and GAME FREAK Inc. This tool isn't affiliated with or endorsed by them.

Pick a type, or let the type pick you. Single or dual, with what it's weak to. There's a type on the page before you've clicked anything, and under it the thing every other generator leaves out: what that typing actually means when something attacks it. "You're Steel this run" is half an answer. "You're Steel this run, so you fold to Fire, Fighting and Ground, and nothing poisons you" is the whole one. The usual way to get a random type out of the internet is a wheel you have to spin and then watch for five seconds to be told a word the page already picked, wrapped in three display ads. The alternative is a reference wiki with the complete 18×18 matchup grid and no way to roll anything. Nobody sits in the middle. This does: roll, and read the matchups for what you rolled. Flip to dual and you get an ordered pair of two different types, with the effectiveness worked out as the product of both halves — so Ice/Rock shows Fighting and Steel at 4×, and anything immune on either half comes out immune overall no matter what the other half does. That arithmetic is the part the wheel sites cannot do at all. Dual rolls are not restricted to combinations that exist on a real species, which is deliberate: if you're designing a fakemon, the impossible pairs are the interesting ones. The Roster dropdown shrinks the pool to the 17 types before Fairy, or the 15 of Gen 1, because retro challenge runs are real and a Gen 1 romhack can't roll Fairy. Everything runs in your browser from a bundled chart. No account, no spin gate, no interstitial, no network request after the page loads.

Built by Bob Article by Lace QA by Ben Shipped

How to use

  1. 1

    Read the type that's already on screen. The page rolls one on load — no button, no form, no animation to sit through. Under the type chip you get three rows: what it's weak to, what it resists, and what it's immune to. Rows with nothing in them are hidden rather than shown empty, so a card never wastes a line telling you a type has no immunities.

  2. 2

    Press Reroll if you want a different one, or press ↻ on a single card to replace just that result. The per-card reroll never hands back the value you just rejected, and it never collides with the other cards on screen.

  3. 3

    Flip Types per roll to Dual for an ordered primary/secondary pair. The two halves are always different types, and the matchups become the product of both — a 2× on each half stacks to 4× and gets called out, while a 0× immunity on either half wins outright and the type moves to the Immune to row.

  4. 4

    Set the Roster if you're running a retro challenge. Modern draws from all 18 types, Gen 2–5 drops Fairy, and Gen 1 drops Dark, Steel and Fairy. The pool changes immediately and the batch re-rolls, so a Fairy on screen never survives a switch to Gen 1.

  5. 5

    Ask for 3 or 6 when you're drafting a team. Results in a batch are always distinct — by type in single mode, and by unordered pair in dual, so Fire/Flying and Flying/Fire never both turn up. Going from 6 down to 1 and back up keeps the results you already had and only rolls the new slots.

  6. 6

    Press Copy to put the results on your clipboard, one per line, as plain text — "Fire / Flying" for a dual roll. The matchup data stays on the page; what you copy is the roll itself, which is what goes in a challenge-run doc or a Discord message.

Frequently asked questions

Ratings & Reviews

Rate this tool

Sign in to leave a written review.
Loading reviews…

What the Random Pokémon Type Generator produces

The Random Pokémon Type Generator gives you one Pokémon type, picked at random, already on the page before you touch anything. Underneath it sit three short rows that say what that typing means when something hits it: what it's weak to, what it resists, and what it's immune to. No button to press first, no wheel to watch, no account.

Roll Steel and the card reads like this:

SteelWeak to: Fire 2×, Fighting 2×, Ground 2× · Resists: Normal, Grass, Ice, Flying, Psychic, Bug, Rock, Dragon, Steel, Fairy (all 0.5×) · Immune to: Poison 0×

Switch Types per roll to Dual and you get an ordered primary/secondary pair instead — two different types, with the effectiveness recalculated for the combination. Roll Ice / Rock and Fighting and Steel both come back at 4×, in bold, because each of them is super effective against both halves.

You can ask for 1, 3, or 6 results at a time. Every result in a batch is different from the others, and each card has its own ↻ button if you like five of the six. The Copy button puts the whole batch on your clipboard as plain text — one result per line, Fire / Flying for a dual roll — which is the format that goes straight into a challenge-run doc or a Discord message.

Why roll a type instead of just picking one

Because picking one defeats the point. A monotype run, a Nuzlocke rule set, or a fakemon design brief is interesting exactly in proportion to how little you chose it. Ask a room of players to "pick a random type" and you'll get Dragon, Ghost, and Fire over and over — they're the ones that feel cool, and people are famously bad at being random on demand. Nobody volunteers for a Bug run. That's the run worth playing.

The second reason is that the type name on its own is only half an answer. "You're Steel this run" tells you nothing you can plan around. "You're Steel this run, so you fold to Fire, Fighting and Ground, and nothing can poison you" is a strategy. That second sentence is the part most random-type pages leave out entirely, and it takes no extra clicks to produce — the chart is already sitting right there.

Which brings up the shape of what else is out there. Search for this and you land in one of two places. The first is a spinner: a wheel that makes you click, then watch an animation for five seconds, so it can tell you a word it had already chosen before the wheel started moving — wrapped in three display ads and a newsletter modal. The second is a reference wiki with the complete 18×18 matchup grid, which is genuinely useful and has no way to roll anything at all. That's the Big Software pattern in miniature: pad the wait so the page feels substantial, gate the basics behind an interstitial, and charge attention for arithmetic that takes a browser a fraction of a millisecond. The Random Pokémon Type Generator rolls before you've clicked, shows the matchups without being asked, and then gets out of your way.

How the matchups are worked out

Every number the Random Pokémon Type Generator prints comes out of one bundled constant: the Generation 6 attack chart, the one introduced in X and Y and still in use. It's stored attacker-first — for each of the 18 attacking types, which types it hits for 2×, which for 0.5×, and which it can't touch at all. Everything you see is derived from that single table, so there's exactly one place a matchup could ever be wrong.

For a single type the lookup is direct. For a dual type, the multipliers are multiplied, not argued over. Each attacking type has a value against your primary and a value against your secondary, and the result is the product. That's why the numbers you see are 4×, 2×, 0.5×, 0.25× and 0× rather than a vague "weak" or "strong."

Two consequences fall out of that arithmetic, and they're the whole reason the readout exists:

  • Weaknesses stack. Two 2× values multiply to 4×, and a 4× hit is the difference between a hard matchup and a one-shot. Those entries are printed in bold.
  • Immunity wins outright. Zero times anything is still zero. Steel/Flying is completely immune to Ground even though Ground is 2× against Steel on its own.

Here's the same rule running across five real rolls, exactly as the cards print them:

TypingWeak toResistsImmune to
NormalFighting 2×Ghost 0×
GhostGhost 2×, Dark 2×Poison, Bug (0.5×)Normal 0×, Fighting 0×
Ice / RockFighting 4×, Steel 4×, Water, Grass, Ground, Rock (2×)Normal, Ice, Poison, Flying (0.5×)
Steel / FlyingFire 2×, Electric 2×Grass 0.25×, Bug 0.25×, plus six at 0.5×Poison 0×, Ground 0×
Ghost / DarkFairy 2×Poison 0.5×Normal 0×, Fighting 0×, Psychic 0×

Ghost / Dark is a good illustration of why this is worth showing: a single 2× weakness in the entire chart, and three separate immunities. You wouldn't guess that from the two names. Notice too that Normal has nothing in its Resists row and Ice / Rock has nothing in its Immune to row — when a bucket is empty, the row is hidden rather than printed with a dash. Neutral 1× matchups never appear at all; they're most of the chart, and listing them would turn a result card into the reference grid.

The three controls

The Random Pokémon Type Generator has three settings, all on one screen, all applying immediately. No panel to expand, no settings page.

ControlDefaultChoicesWhat it does
Types per rollSingleSingle / DualDual rolls an ordered pair of two distinct types and multiplies the matchups
How many11 / 3 / 6Rolls a batch; every result in it is distinct
RosterModern — all 18Modern · Gen 2–5 · Gen 1Shrinks the pool of types that can be rolled

The Roster dropdown exists because retro challenge runs are real and a Gen 1 romhack can't roll Fairy. Modern draws from all 18 types. Gen 2–5 drops Fairy, leaving 17. Gen 1 drops Dark and Steel as well, leaving 15. Changing the roster re-rolls the batch straight away, on purpose — a Fairy sitting on screen after you've told the tool you're playing Gen 1 is worse than no result at all.

Counts behave the way you'd want when you change your mind. Going from 6 down to 1 and back up to 6 keeps the results you already had and only rolls the new slots, so you don't lose the one you liked. And the per-card ↻ never hands you back the value you just rejected, and never gives you something already on screen.

Where this trips people up

Three things surprise people, and all three are deliberate.

The Roster changes what you roll, not the rules

Pick Gen 1 and you'll never roll Steel — but Steel can still show up in a result's weaknesses. That's correct. The roster filters which types the generator draws from; it doesn't rewind the effectiveness chart to 1996. Rewinding the rules per generation is a second job with a different search intent, and bolting it on here would double the controls to serve a fraction of the people who land on the page.

You can roll combinations no Pokémon has

Normal/Dragon is a legal roll here. So are roughly a hundred other pairs no species has ever had. All 306 ordered pairs of two distinct types are on the table, because filtering to canon would break one of the three jobs this page does — if you're designing a fakemon, the unused pairs are precisely the interesting ones. The one rule that is enforced: a type never pairs with itself. Fire/Fire isn't a dual typing, it's a single one written twice.

There's no offensive coverage, and no Stellar

The card answers "what beats me," not "what do I beat." When you're locked into one typing for a run, what ends the run is what beats you. Stellar isn't in any roster either — it's a Terastal mechanic rather than a type a species can have, and it has no defensive matchups to show.

The 18 type names here are ordinary English words used descriptively, and the matchup table is a rule of the game. There's no official logo, wordmark, badge artwork, or sprite anywhere on the page — the coloured chips are plain CSS drawn with text. Pokémon is a trademark of Nintendo, Creatures Inc. and GAME FREAK Inc. This tool isn't affiliated with or endorsed by them.

Related generators

Randomising one constraint is usually the start of a list. If you're drafting a challenge run, the random number generator handles level caps and encounter rolls, and the team generator splits a group into even sides for a draft league. Building a themed run with friends? The list randomizer will shuffle a custom pool of anything — game titles, rule modifiers, starter options — when the thing you need picked isn't a type at all.

For fandom-adjacent picks, the random anime character generator works the same way for a different universe, and the random letter generator is the usual way to pick a nickname constraint. Every one of them runs in your browser and none of them asks who you are.

Frequently asked questions

Is the roll actually random?

Yes, and unweighted. The Random Pokémon Type Generator builds the full list of legal results for your settings — 18 singles at the Modern roster, or 306 ordered pairs in dual mode — and picks one uniformly. No type is favoured, nothing is nudged toward the popular ones, and nothing about your previous rolls affects the next one. Nothing is stored or sent anywhere either; the roll happens in your browser.

Can I use this to pick a Nuzlocke or monotype run?

That's the main reason it exists. A random Pokémon type is the cleanest possible Nuzlocke or monotype constraint. Set the Roster to match the game you're playing, leave it on Single, and take the first thing it hands you — the constraint is only a constraint if you don't reroll until you like it. Read the Weak to row before you start, because that row is your run's obituary if you ignore it. For a draft-league or team-based rule set, ask for 3 or 6 and use the batch as your pool.

How many dual typings can it roll?

306 ordered pairs at the Modern roster, which is 153 distinct typings counted the way a player would. Gen 2–5 gives 272 ordered pairs, and Gen 1 gives 210. Within one batch, uniqueness is checked on the unordered pair, so Fire/Flying and Flying/Fire never both turn up — they're the same typing written two ways.

Does it include Stellar or Terastallized types?

No. Stellar is a Terastal mechanic in Scarlet and Violet rather than a type a species can be, so it has no defensive profile to print — including it would break every matchup readout on the card. The 18 rollable types are the ones a Pokémon can actually have.

Does it work offline, and is there a limit on rolls?

It works offline once the page has loaded, and there's no limit. The type chart ships as part of the page, so every roll is a function call in your browser rather than a request to a server. The six-hundredth roll behaves exactly like the first. Closing the tab is the entire cleanup process.

What's the difference between this and a full type chart?

A type chart answers a question you bring to it; this answers a question you don't have yet. The generator picks for you and then shows only the three rows that matter defensively for what it picked. If you want the complete 18×18 matrix, or you want to know what your type is strong against, a chart is the right page and this isn't trying to be one. One job per tool is the deal — and 10% of every dollar Microapp earns goes to charity, off the top, audited quarterly, which is the other half of it.