Рэнд генерирует одинаковые числа

У меня проблема с маленькой игрой, которую я сделал.

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
int span = 100;
srand(time(0));
int TheNumber = static_cast<double> (rand()) /RAND_MAX * (span -1) +1;
cout << "You need to guess the number between 1 and " << span << endl;
int mynumber;
int numberofAttempts = 0;

do {
    cout << ++numberofAttempts <<" Attempt: ";
    cin >> mynumber;
    if (mynumber > TheNumber)
        cout <<"Lower!" << endl;
    else if (mynumber < TheNumber)
        cout <<"Higher!" << endl;
} while (mynumber != TheNumber);

cout << "SUCESS!!!" << endl;
return 0;
}

Предполагается, что в игре генерируется случайное число от 0 до 100, и вы должны его угадать. После запуска этого кода 15-20 раз одни и те же числа генерируются примерно 8 раз (число 2 в моем случае).

Я знаю, что не существует абсолютного случайного числа и что оно использует какую-то математическую формулу или что-то для ее получения. Я знаю, что с помощьюsrand(time(0)) делает его зависимым от текущего времени. Но как бы я сделал это "больше" случайным образом, поскольку я не хочу, чтобы происходило то, что я упоминал выше.

В первый раз, когда я запустил его, результат был 11, после запуска снова (после угадывания правильного числа) это было все еще 11, хотя время изменилось.

Ответы на вопрос(3)

Ваш ответ на вопрос