How accurate does the RANDOM_NUMBER have to be in this stocastic simulation ?
You could have a large list of random values ( say n = 10^6 ) and start each thread from a different place in the list, say (ithead/nthread*N) then cycle all threads sequentially through this random list, keeping a private list pointer for each thread.
An accuracy issue is how to handle extreme events with a low resolution random number generator. I have successfully done many simulation studies with 16-bit and 32-bit random number generators.
Extreme events can be addressed with a changed approach. Rather than repeatedly testing if the event happens now, it can be more accurate to sample for the step interval to the next event occurring and count down.