a first pass through wrapping std::thread and dealing with thread safe randomness