ArrayRand или случайное число от 0 до заданного N

 

нужна функция, возвращающая случайный индекс массива или случайное число от 0 до заданного N.

найденая здесь функция

int MathRandRange(int min, int max)
{
    return (MathRand() / 32768. * (max - min + 1) + min);
}

чевой-то не работает.

MathRandRange(0, 10); // постоянно = 8
 
//————————————————————————————————————————————————————————————————————————
//Генератор случайных чисел из заданного интервала.
double RNDfromCI(double min,double max)
{return(min+((max-min)*MathRand()/32767.5));}
//————————————————————————————————————————————————————————————————————————
 

вобщем, все работает и так и так.

int init()
{
   MathSrand(TimeLocal());
   Alert(MathRandRange(0, 10)); // первое число при каждой инициализации одно и тоже
   Alert(MathRandRange(0, 10)); // дальше пошли случайные
   Alert(MathRandRange(0, 10));

глюк был из-за MathSrand.

без нее первое число как и нужно - случайное.

хотя и странно.. всегда считал, что она по типу randomize - переинициализирует генератор, что и по описанию так и есть, а на деле..

 
сам написал, сам разобрался )
Причина обращения: