Генераторы псевдослучайных чисел должны быть "затравлены" перед их использованием;начальное число по умолчанию всегда одинаково, поэтому вы получаете одну и ту же последовательность.
Обычно вы используете что-то вроде srand(time(NULL))
, но это не работает, если вы снова запустите программу в течение секунды.Также полезно использовать случайное число или два после посева, так как первые несколько значений сильно коррелируют с самим семенем.