There are many seemingly random events in Pokémon: the IVs and natures of the Pokémon that you capture or breed, the number of steps an NPC walks before turning, or the odds that your newly hatched Totodile is shiny. As it turns out, these events are all governed by the output of a class of mathematical formulas, which are known as pseudo random number generators. The word "pseudo", often used to paint things as "fraudulent" or "false", is very appropriate in this case. Even though the numbers output by these formulas may appear to be random, they are not. Each sequence begins with a single number, often referred to as a seed, and continues on in a predictable pattern.
As the seed determines the sequence of numbers that will follow, it is important that it is different each and every time you play. If the same seed was chosen each time, the pattern of numbers, and how they affect the game, would be noticeable over time, breaking the illusion of randomness. To alleviate this potential problem, the developers decided to create the seed using something that should be different every time you play: the date and time on your Nintendo DS. By doing some light math on the individual components (year, month, hours, etc.) of the date and time, a "unique" seed is created each time you start the game.
There is an obvious flaw in this technique; we can change the date and time on our Nintendo DS systems before we start the game. With knowledge of how the date and time affect the seed, it is possible to choose a combination that yields a desirable result, allowing us to control the sequence of pseudo-random numbers that is generated. Coupled with the knowledge of how the game uses those numbers to create Pokémon, we become the creators, picking and choosing desirable traits, removing any remaining vestiges of randomicity.