Используйте /dev/random
(требуется ввод данных пользователем, например, движения мыши) или /dev/urandom
. Последний имеет пул энтропии и не требует ввода данных пользователем, если пул не пуст.
Вы можете читать из пула так:
char buf[100];
FILE *fp;
if (fp = fopen("/dev/urandom", "r")) {
fread(&buf, sizeof(char), 100, fp);
fclose(fp);
}
Или что-то в этом роде.