I find it easier to base it off a real place and then just fill in a certain number of towns from there. For example, you need 8 Gym towns, the League, and at least two or three small towns. Things like caves, deserts, and lakes go adjacent to or directly in routes and towns.
As for biomes, you...