Essaie ça :
NbAlea (distrib(gen));
std::cout << NbAlea;
NbAlea (distrib(gen));
std::cout << NbAlea;
NbAlea (distrib(gen));
std::cout << NbAlea;
Normalement, tu vas constater que le programme affiche des nombres qui changent. Le programme a une série de nombres en réserve qui simulent très bien une série aléatoire. Ton problème est qu’il va piocher systématiquement au même endroit dans cette série.
Il faut donc une commande au début pour dire 'Va chercher dans un endroit 'aléatoire' dans cette série’. Mais pour prendre un endroit aléatoire, comment faire ? La technique que tout le monde utilise, c’est de s’appuyer sur l’horloge de l’ordinateur. Au moins, on est sûr qu’entre 2 lancers, l’horloge va nous donner 2 nombres différents.
Ici, tu veux un seul nombre. On va beaucoup simplifier ton problème. Il y a des outils spécialisés pour générer une série de nombres 'aléatoires’ (les outils ci-dessus), mais toi, tu veux un seul nombre.
Tu demandes à ton ordinateur quelle heure est-il ? Ton ordinateur te donne un nombre, un nombre de milli-secondes ; Ce nombre, tu le divises par 6, et tu regardes le reste de la division. Et ce nombre va 'ressembler' à un nombre aléatoire.
C’est un countournement, c’est pas terrible, mais pour ton besoin, c’est bien suffisant.