There’s a really neat tool I found called Universal Pokemon Randomizer. It runs on any US Pokemon rom from Gen1 Red to Gen5 Black2, and completely randomizes the game in a really cool way.
Here’s a list from the site of what it randomizes:
- The Starter Pokemon choices.
- The Wild Pokemon you encounter in grass, caves and other places.
- The Pokemon that Trainers use against you.
- The base stats which define the potential of each Pokemon.
- The elemental types of each Pokemon.
- The abilities of each Pokemon, in games where they exist.
- The moves that Pokemon learn by gaining levels.
- The contents of each TM which can be taught to Pokemon to give them additional moves (HM moves are not changed to make sure you can still beat the game)
- The ability of each Pokemon to learn each TM or HM move.
- The “static” Pokemon which you either are given, fight on the overworld, or are sold.
- The names of trainers & the classes they belong in.
- The moves taught by move tutors, for games within which they are significant enough.
It’s really really cool and I recommend it.