From what I know about most Random classes / functions, they require a "seed" since they are technically not random.
If one wishes to make a number truly random, they use the current time for the seed, since time is constantly incrementing.
So, it is possible for that to malfunction when time reaches an invisible bounds or a value that the random number generator cannot interpret properly. Why this bound would exist at all, is beyond me.
Schedules probably also rely on the current time to estimate when they should execute, in advanced.
It is also possible that the data type used to store simTime reaches its max value (Since each type can only store a certian amount of values before being unable to hold anymore.) Most of the time when it reaches this value, it simply loops back around, (AKA becomes negitive)