Когда я читал, как использовать std :: rand, я нашел этот код на cppreference.com
int x = 7;
while(x > 6)
x = 1 + std::rand()/((RAND_MAX + 1u)/6); // Note: 1+rand()%6 is biased
Что не так с выражением справа? Пробовал это, и он отлично работает.