Задача совершенно сложная, поскольку компьютер - вещь совершенно не случайная. Компьютер - он конкретный, и не способен создать случайность, только выполнить конкретные команды.
Большинство генераторов случайных чисел пытаются взять различные величины - например текущее время из таймера, различные данные из разных устройств, произвести над этим математические операции, и получить псевдослучайное число.
Но при большом усердии, такое число можно повторить, зная изначальные условия, поэтому это называется псевдослучайностью.
Вторая проблема - взять эти разные величины - это нужно обратиться к таймеру, обратиться к устройствам, выполнять эти математические операции, то есть это не быстро.
Без сторонних железок, можете пробовать сами..
Какой-нить бред, вроде текущее время * температуру проца, взять первые 1024 от этого и прочитать указанный сектор на первом разделе устройства, провернуть через md5, опять прибавить новое текущее время.
Если вам быстродействие устроит - то вот пример более-менее рандомного числа, которое в разное время на разных машинах будет генерить разные цифры. Но вот проблема в том, что если вы будете несколько недель генерить этим методом рандомные цифры от 0 до 100, то через несколько недель, статистика вам покажет, что некоторые числа будут встречаться гораздо чаще, чем другие.
Хороший алгоритм, который на млн запросов выдаст примерно ровное выпадание чисел по ВСЕМУ диапазону - задача крайне сложная.