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

Так и делаю, когда пишу генераторы тестов к задачам для стресс-тестирования.
Вариант — использовать gettimeofday(). Он вернет struct timeval, из которой можно достать микросекунды :)
POSIX-2008 помечает gettimeofday как устаревший, вместо него можно аналогично использовать clock_gettime().
PS. Это про POSIX-системы, на винде не факт что есть.
PPS. А причём тут C++?