У меня была задача связанная с криптозащитой, пришлось писать свой
рандом, потому что существующая функция имеет приличную кучность.
Суть алгоритма основывается на получение списка ID записей и еще оного столбца для хеша фиксированной длинны. Далее генериться случайный хеш и сравнивается по весовому совпадению с хешами контрольных записей. Остаются хеши с одинаковыми весами. Для них снова генерим произвольный хеш и сравниваем. Так до тех пор пока не останется одно значение. Далее получаем запись по ID.