La funzione rand FUNZIONA!
Ti da sempre lo stesso risultato perchè non cambi il seme!
Ora non ricordo se è seed o srand comq prima della funzione fai una cosa del genere
srand(time)

in questo modo inserisci un seme nuovo e "casuale"