In reply to dave_59:
I have a feeling that tool implementation might use multiple RNG values to finish a randomization operation like array.shuffle or std::randomize. So if the size of the array is different, the process randstate at obj = new; could be different.
So I just need to figure out some of details about these operation and put necessary randstate save/restore around them, just like what has been done in UVM BCL.