Der Computer betrügt, wenn er halbwegs gut spielen will immer, da er ja nicht in Kontexten denken kann, dass ist nur mal mehr oder mal weniger offensichtlich. Wenn man sich durch den Code arbeitet wird man das immer finden. Einen Teil kann man durch gute Algorithmen abfangen, aber ab einer bestimmten Spielstärke erhält der Computer bestimmte Vorteile um mithalten zu können. Und sei es nur, dass er einen besseren Überblick über alles hat, was einem menschlichen Spieler normalerweise an diesen Punkten verwehrt wäre.
Der Zufallsgenerator beim Kartenziehen ist nicht spielentscheidend wenn man dessen Macken kennt, aber wenn man es nicht weiß, dann kann man schon öfter als beim realen Spielen verlieren.
Natürlich kann man auch gute Generatoren als Library einbinden, aber oft genug stößt man immer noch auf Eigengewächse und nicht jeder ist so fit in der Programmierung, dass er merkt, dass der Generator für seine Art von Nutzung ideal oder suboptimal ist. Und oft genug ist dass das Problem, ein Generator der außerhalb seines eigentlichen Zwecks betrieben wird.
Zudem ist die App generell etwas suboptimal programmiert, je nach OS zieht das Teil abartig Strom und verbraucht mächtig CPU-Leistung. Da ist auf jeden Fall noch ziemlich Raum für Optimierung.