Генератор случайных чисел - это, по сути, специальная хэш-функция *, которая рекурсивно запускается из начального начального числа.
Я использовал MurmurHash2 алгоритм в моем коде C # для хорошего эффекта. Он чрезвычайно быстр и прост в реализации и был протестирован, чтобы быть очень хорошо распределенным с низкой частотой столкновений. В проекте есть несколько различных хеш-функций с открытым исходным кодом, написанных на C ++, которые должны быть легко преобразованы в C.
* Под специальным пониманием я подразумеваю, что выполнение хэш-функции для значения должно возвращать другое, казалось бы, случайное (но определенное) значение, чтобы выходные данные не формировали шаблоны. Кроме того, распределение возвращаемого значения должно иметь равномерное распределение.