About $urandom_range random stability

In reply to rgarcia07:

All randomization in SystemVerilog happens as the as the result of executing a procedural construct. With the exception of the built-in randomize() method, the seed for all these constructs comes from the thread executing the construct. Thread stability comes from making sure the threads get started in the same order, and within a single thread, the randomization constructs get executed in the same order.

That one exception is where object stability comes in. When you construct a class object, that object gets seeded from the thread executing the constructor. After that, calls to randomize() use the object seed, not the thread seed.