Kurze Antwort ohne Zitat
Üblicherweise erfolgen solche Checks in einem "Loginscript", das nach der Anmeldung aktiv wird.
Was alles geprüft wird und in welcher Reihenfolge entscheidet der Programmierer, wenn er das Script bastelt.
Dass hier Fehler passieren halte ich für unwahrscheinlich.
Alternativ dazu gibt es auch noch die Möglichkeit nur dann auf fertige Aktionen zu prüfen, wenn die entsprechende Seite geöffnet wird (wir erinnern uns alle an die GA, die man vor einer Weile noch in den Herausforderungen "abholen" musste").
Nun gut... das Problem sehe ich, wie gesagt, beim Zufallszahlengenerator.
Denn dieser kann in der Tat gar keine echten Zufallszahlen ermitteln, da Programme/Algorithmen normalerweise festen Abläufen folgen und sich immer in definitierten Zuständen befinden.
Die "Zufallszahlen" werden i.d.R. aus Nutzereingaben, Hardwaremerkmalen und flüchtigen Parametern wie Datum und Uhrzeit gebildet.
Wird dieser Generator ab und an mal angeworfen, so streuen die Ergebnisse gut und es ist von allem etwas dabei (-> Ingamefunde)
Wenn aber zu einem bestimmten Zeitpunkt (Loginscript) sehr viele Zufallszahlen hintereinander ermittelt werden, dann kann es sein, dass sich die Ergebnisse "klumpen", d.h. auf die Produktion bezogen, dass alle Gebäude Elementare abwerfen - oder eben keins. (Bei der Wahrscheinlichkeit auf Funde ist eher mit Letzterem zu rechnen).
Beim php-randomizer ist ein solches Verhalten bekannt, aber es gibt auch keine wirklich guten Alternativen.
Hier wäre es vielleicht mal spannend mitzuplotten welche Ergebnisse der Zufallszahlengenerator so ausspuckt.