I understand that time(0) is commonly using for seeding random number generators and that it only becomes a problem when the program is being run more than once per second.
Since you're already using boost, you probably want boost::random_device.
(At least on Linux. I don't recall whether the obvious CryptGenRandom implementation of it is yet available on Windows.)