a hardware RNG hashed into a 0-999 range is hardly complicated and would completely wreck both of your theories.
that said, they could also do a simple rand with unique seed based on number of packet requests since server up, which would also be almost impossible to break in a predictable manner (assuming the rand is any good).
and considering you can get (for free) an algorithm,
here, that has a cycle time on the order of magnitude of 10 quattuordecillion (to give you an idea of the magnitude we're talking about here, if we were to generate 30,000,000,000(30b) random numbers a second, it would take 3 trillion centuries before a single seed would cycle to a repeating pattern.
obviously, a software RNG is only as good as its seeding system. but with a software RNG like that, you would only need to seed the RNG during boot up and you'd have good variance.