You can use Perlin Noise for the generation of the terrain, here is how the biomes in Minecraft work. As you can see he uses a heatmap in combination with a rainmap to create the biomes.
Biomes from Minecraft
tversteeg
- 451
- 2
- 14
default