>>36
RDTSC is an x86 instruction which represents the current tick count in edx:eax. It's not that much different from using time(0) as a seed, except that it's a 64bit value which gets reset to null when you start your CPU. There are also portability concerns related to using it, but it's not a problem if one writes different versions per OS family(*nixes, win32) and adds coresponding #ifdef's. Here's an example of sources of randomness used by MSVC for generating the security cookie used for buffer overflow protection:
a mix of
QueryPerformanceCounter
GetTickCount
GetCurrentThreadId
GetCurrentProcessId
GetSystemTimeAsFileTime
and some hardcoded seed constants. PID and thread ID are slightly random, current tick count can be too, and current time is a classical seed source, and of course the tick counter is a good source too. In general this means randomness sources are limited to timer and processor features, and whatever the user does to affect the system in some way(PID, moment of application launch). If a truly secure seed is needed, additional randomness sources could be added, such as capturing mouse movement from the user or randomly hash some files/data available on the system. It should be noted that in some cases novices which try to make better seeds than time(0) actually ended up reducing the unique bits in the seed, making it even easier to predict in practice, and certainly cryptographically insecure.