non ce qu´il faut faire c´est appeler srand une seule fois au début de ton programme. Ça initialise le générateur de nombre aléatoire et après tu utilise rand, mais plus srand.
Sinon, effectivement durant une seconde (et une seconde c´est long en informatique) à chaque appel de srand(time(null)), le générateur de nombre aléatoire est remis à la même position et donc rand te renvoie le même chiffre.
Bref, rand est assez mauvais, mais pour des cas simple il est nettement suffisant, mais il ne faut pas utiliser srand tout le temps.