I suggest upon being generated biomes makes a choice to spawn a limited number of pokemon evolutionary lines say 20 lines per biome (of the 470ish lines in pokemon) from the ones available. (Legendaries and mythicals are not included)
Each pokemon is categorized into prey 1, prey 2, and prey 3 as well as Pred 1, pred 2, and pred 3. Prey are herbivores and act like sheep grazing and what not they also tend to spawn in herds. Prey however will aggro prey-pokemon if they are within a 5 block radius or so.
Now you're wondering why they have the numbers. These respond to their evolutionary stage. Babies at 1 middle at 2 and at 3. This may vary for 2 stage or single stage mon. (Growleth being pred 1 and Arcenine being pred 3) This also works in the system of what mon will chase which. Predators will always chase prey of equal or lower rank. Stronger prey may also choose to protect weaker prey.
While this may oddly worded and phrased, but i suggest it as a system similar to this would give more uniqueness to each biome and make the world feel more alive as the pokemon would no longer exist just to please you.