Aren't you losing a ton of precision when handed a large seed? My guess is this will totally overflow what floats can accurately store. Try passing 2 timestamps that are a close together, but not the same. My guess would be that the seed will become equal for them.