Еще варианты:
1. На Linux можно считать первые четыре байта из /dev/urandom
2. На x86/x64 можно воспользоваться командой 'rdtsc' — возвращает количество тактов процессора с старта системы. Код для GCC:
long long x;
asm("rdtsc" : "=A"(x));
srand(x);
Так и делаю, когда пишу генераторы тестов к задачам для стресс-тестирования.