Комментарии 4
Вы на этот вопрос правильно не ответили: «чем отличается rand() от mt_rand()». Функция rand() от фукции mt_rand() отличается следующим:
Начиная с PHP 7.1.0 функция rand() использует тот же алгоритм генерации случайных чисел, что и функция mt_rand(). Чтобы сохранить обратную совместимость, функция rand() разрешает задавать для параметра max значение меньше, чем значение параметра min, и в отличие от функции mt_rand() не возвращает false.
Угу, угу
<?php
// PHP 8.2+
$random = (new \Random\Randomizer())->getInt($min, $max);
Кроме того не очень понимаю зачем тут код Mersenne Twister, когда в том же 8.2 добавили PcgOneseq128XslRr64 и Xoshiro256StarStar которые
"рандомнее"
проще
нагляднее
Спасибо за дополнение! Но суть статьи не в том, чтобы показать максимально оптимальный метод генерации случайных значений, а рассказать про устройство php. rand() - самый популярный метод, буквально первый при запросе "генерация случайных значений php". Код Mersenne Twister здесь для того, чтобы показать как rand() работает. В последующих статьях, если тема зайдёт за продвинутые методы рандомизации, обязательно напишу про указанные вами.
PHP под капотом: как работает генерация случайных чисел