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. It is possible that some seeds randomly generate very large biomes, but this is only due to the random nature of terrain generation.
For versions starting with 1.7 snapshots
From Jeb's blog post:
Biomes have been put into four main categories: snow-covered, cold, medium, and dry/warm. Biomes will avoid getting placed next to a biome that is too different to itself (sometimes this still happens, but it’s very rare now and not all over the place)
[...] Most biomes have uncommon/rare variations that you may run into.
For versions starting with Beta 1.8
In Beta 1.8, biomes got an overhaul. They are no longer determined by randomized metrics such as rainfall and temperature. Rather, they appear to be assigned randomly to fractal sections of the world, as determined by the world's seed.
This was done to better allow new biomes to be inserted. Rather than changing the entire temperature/rainfall simulation, new biomes can simply be generated when new chunks are explored. This is also why biome information is now stored in the anvil file format itself, rather than regenerated every time the game is run. In this way, even if generation code changes occur, currently-explored biomes should not change.
Lastly, new "technical" biomes were introduced to support transitioning from one specific biome to another.
For versions prior to Beta 1.8
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.
In past updates, biome changes have been retroactive. I logged into my original singleplayer world recently to find it was now a snow biome.
You can use a map editor (such as MCEdit) or a game mod (such as Bukkit WorldEdit plugin) to delete the chunks you haven't built anything in. When you explore them again, they'll regenerate using the most up-to-date method.
If you really want all the latest terrain everywhere, use MCEdit to copy your base and export it as a schematic. Write down the world seed. Start a new world in Minecraft using the same seed, then exit Minecraft and use MCEdit to import your old base into the new world.
Best Answer
Short Answer
As already stated, you cannot craft a seed that would generate a world with specific properties.
(See bottom for alternative options.)
I’ve seen this question numerous times in various places, so I’ll explain exactly why it is not possible.
Technical Explanation
Procedural Generation for variety
Minecraft uses what is called procedural generation to create the world. That is, instead of the developers using map-makers/level-editors to create the maps (and their contents) for the game, the game creates it all on the spot using algorithms. (Technically, any/all parts of a game could be procedurally generated, like with Farbrausch’s proof-of-concept demo-game .kkrieger, which packs an HD FPS that rivals contemporary games that weight in at dozens of gigabytes into just 97,280 bytes!)
To create a game with variety instead of the same thing copy-pasted everywhere (which would quickly make the game look very patterned and repetitive), the algorithms use random numbers to vary things like terrain, characters, and items.
Not-so Random Numbers
Computers are incapable of creating true random numbers (it could be argued that we are as well), so they use various means of creating pseudo-random numbers with a pseudo–random-number generator (PRNG). The methods vary, but essentially boil down to taking a number, passing it through some sort of complex mathematical formula to create a large number, then reducing that large number to a smaller one and using that as the next number in the sequence. That number is also passed back through the same process to create the next number and so on. Obviously there is nothing random about that since each number is directly related to and derivable from the previous one, but there is no obvious connection between them (as in 1, 2, 3…; 1, 4, 9…; 3, 5, 8, 13…; etc.) This makes them random enough for most purposes.
Seeds
Now comes the key part. Because the process is feeding a number through a formula and repeating, to get the first number, you must first give the PRNG something to begin with. This is called the seed.
Entropy
One option is to use some source of entropy to get a number. This would result in as random a number as is technically possible. For example, you could use the current time (which presumably will be unique at any given moment since time is a one-way street). You could also use the current temperature of the CPU which may not be unique, but is not likely to be at any predictable value at any given moment due to the various factors that go into setting it. Also user input like mouse-movements and key-presses (sampled over a period of time) tend to be fairly unpredictable. These are examples of entropy sources which can provide the PRNG with an unpredictable seed which can thus lead to new and unique content being generated at each run. This is what Minecraft does if you leave the seed blank.
(Creating random content ostensibly means that it can provide an essentially infinite amount of ever-new gameplay—though in practice, it doesn’t quite work like that; there are limits to what is practical/playable, and the novelty invariable wears off at some point.)
Random-ish
Another option is to use a fixed seed. If you provide the PRNG with the same starting number, then every time you do a run, you will end up with the same sequence of numbers being output. The numbers will still seem random in that they don’t appear to be connected to each other, but the set of numbers are the same as the last time you used that seed, and the same as the next time. This is what happens when you input the seed to the world-generator.
(You might wonder what the point of using a fixed seed is. After all, if the PRNG is already generating numbers that aren’t truly random, then why make it even less random? For one thing, it makes it possible to create reproducible random content. This allows for people to share seeds so that they can share things like Minecraft worlds that they like without having to send all of the files. Instead of transferring a bunch of large files, they can just post the seed which is only a few bytes, and the other person recreates the same world.
Another use is in game-development. When testing software, reproducibility is key. Using random numbers can help emulate player input, but being able to emulate a player pressing buttons and keys and such in exactly the same way each time makes it much easier for testers and debuggers because they can reproduce the sequence of input that lead to the error.)
Example
Here’s what I remember of the example I saw when I first learned about RNGs about 3.7 million years ago (this specific formula is just an example; it actually has some flaws that make it impractical, for example a seed of 0 or 1 would be useless). Imagine a process as so:
Using a seed like 12345678 would result in the following:
This gives the sequence
(12345678), 41576527, 60759738, 74576182, 60692169, 53937792, 28540583, 56487797, 87120991, …
As you can see, the numbers don’t seem to have much pattern, which makes them good for things that should not be a pattern (though with a little math, you can massage them into a mild pattern such as random clusters of trees or monsters; random but not absurdly scattered).Usage
As you can also see from the example, it is extremely difficult, if not completely impossible to control what the output at any given step will be. This is even worse if you cannot control which number from the sequence is used for what purpose.
For example, imagine if the Minecraft world-generator used the following (commented) pseudo-code:
It is difficult enough to control what the output is at any given point the sequence, but to control it at just the right moment when it is used for the appropriate variable is out of the question. This is especially true if the RNG usage can vary like with the lake calculate above where the RNG is used to calculate how many lakes there are, and then a few times for each one. That means that the number that the RNG gives for the second biome will depend on how many lakes were created for the one before it. The one for the third biome will depend on the first two, and so on, making the index of the number in RNG sequence which is used for the biome variable effectively random. And this example was extremely simplified.
Application
Even if you knew the exact formula that the world-generator uses for its PRNG, and even if you knew exactly how, when, and where the world-generator uses the PRNG’s outputs in the code, being able to control its output is nigh on impossible. There is no way to formulate a number that when passed through an equation over and over again (millions of times) will give the exact numbers, at the exact right moments, that would cause the world-generator to create exactly what you want.
At best, with a lot of luck, you may be able to influence one or two outputs, but to manipulate multiple outputs would be impossible since the RNG formula is unlikely to produce consistent results (which is the whole point).
(Also, be aware that the world-generation formula has actually changed several times throughout the various versions, and that mods can affect it as well, so the same seed may generate vastly different worlds depending on the version of Minecraft, the installed mods, and the versions of those mods.)
Alternatives
There are a few options you have (none of which are prefect):