A Pokémon's catch rate is a species value from 3 to 255 that feeds the capture formula, where 255 is the easiest value in the system and 3 marks the hardest catches in the games. Ball type, remaining HP, and status conditions modify the final chance on each throw.
Every species carries its own catch rate in the game data, and the spread explains your lived experience. Common early route Pokémon such as Caterpie, Pidgey, and Rattata sit at 255. Most Legendary Pokémon sit at 3, as does the Beldum line, which is why a Metang can burn through dozens of Ultra Balls at low HP. A rate of 255 does not guarantee a catch at full HP in a basic ball, because the formula divides by remaining HP; it makes the catch highly likely, and effectively certain once HP is low.
The formula in modern games multiplies the species rate by the ball bonus, an HP factor that improves as the target weakens, and a status bonus, with sleep and freeze worth more than paralysis, poison, or burn. That is why the standard routine is always the same: lower the HP without knocking it out, ideally with False Swipe which leaves exactly 1 HP, inflict sleep or paralysis, then throw the best ball for the situation.
Rates can also change by form or game. Some species had their rates adjusted between generations, and special encounters use their own rules. When a capture feels impossible, it is usually arithmetic, not the game cheating you.
In play"With a catch rate of 3, bring fifty Ultra Balls and a lot of patience."