Since the world of Minecraft is infinite, (see Notch's blog post about that interesting subject,) all worlds should have all biomes, if you search far enough for them.
Biomes are defined using different aspects of environment such as a rainfall and temperature, which presumably are defined in a similar manner to height (ie. a Perlin Noise map overlaying the world.) These are used to determine the biome for that area, with deserts being hot and dry, rainforests being hot and wet, etc. The Minecraft Wiki has some great illustrations of biomes, with one of the most informative being this one:

Assuming rainfall and temperature are evenly distributed, the distribution of each biome should be relative to their size in the graphic above. (This may not be a true assumption, though, and would take some digging into the source code to tell.)
To answer your final question, "North" and "South" are abstract and irrelevant, due to the infinite nature of Minecraft. Minecraft worlds do not simulate a planet, but a massive, flat world.
For those of you interested in a more procedural biome-generation method, check out dungeonleague.com, and this post and few preceding posts in particular.