the discover tab re-shuffled on every mount because useGames() returns a new array reference each time. now the shuffled ID order is stored in zustand, only recomputed when game count or seen count actually changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>