You can use the function RAND_bytes from the OpenSSL library to get cryptographically strong random numbers ( http://www.openssl.org/docs/crypto/RAND_bytes.html# ). I think that it is good enough to get a "different" seed for each instance, but I think that it does not solve the birthday paradox.
Just a thought...why can't you generate the initial seed using the system time and then use that to generate random numbers? Won't this be random enough?