Avez-vous remarqué que les nombres aléatoires n'avaient d'aléatoire que le nom ?
En voici la raison :

Les nombres pseudo-aléatoires sont tous sélectionnés avec la même probabilité dans un jeu de nombres fini. Les nombres choisis ne sont pas entièrement aléatoires parce qu'ils sont sélectionnés à l'aide d'un algorithme mathématique précis, mais ils sont néanmoins suffisamment aléatoires pour des fins pratiques. (MSDN)

Ainsi si vous utilisez la syntaxe suivante :

System.Random rnd = new System.Random();
for (int i=0; i<10; i++) {
 System.Diagnotics.Debug.WriteLine(rnd.Next(1000,9999),"Nombre Aléatoire");
}
Pas très intéressant si vous voulez générer des mots de passe, des clés, ou autres séries...

Ainsi je vous conseille l'utilisation de cette syntaxe :

System.Random rnd = new System.Random(DateTime.Now.Millisecond);
for (int i=0; i<10; i++) {
 System.Diagnotics.Debug.WriteLine(rnd.Next(1000,9999),"Nombre Aléatoire");
}
Maintenant, vous avez peu de chance de retomber sur la même suite ;)