Quoted By:
Trainers for routes and dungeons randomized.
Every route should have randomly assigned amount of trainers, that change at certain intervals. They should use a pool of trainers like in battle chateau, so you can meet the same trainer in multiple areas.
These trainers should have randomized pokemon per encounter and every area should have a level range, where trainers' pokemon should be. Trainers with one pokemon should have that pokemon be on the level cap for that area, while trainers with 6 pokemon should have all their pokemon on minimum level for that area give or take few levels.
The randomized pokemon should be also based on a different pools based on areas, so you won't be meeting stuff like Aggron on your first trainer you meet.