This may give slightly better results if the game timer is not
too precise, by avoiding a scenario where two instances of the
game started very close together have very similar initial states.
In reality this may be an extremely rare or even impossible scenario
with the current implementation, as the (im)precision of system time
functions is often related to system scheduler behaviour. But it
shouldn't hurt, and the plan is to alter how the timers work and
this will become needed.
To this end, split out the timekeeping functions which allows them
to be easily stubbed out in test cases, and a new test case checks
that (with the nonfunctional timer) we still get different results
on different runs.