After a week of timeout from active MSA development I came back reshuffled and ready to March!
The first priority these days came from our Discord, where the “bad hands” topic and a potential (but not confirmed) issue with the site shuffle method came up again. I spent a couple of hours testing, simulating, and evaluating possible alternatives to the current shuffle algorithm.
The previous implementation was based on Lodash’s shuffle method, which internally uses Math.random() and implements the Fisher–Yates shuffle. It has always been a perfectly valid and widely used approach for randomizing arrays. The new implementation now uses crypto.randomInt() instead.
Across all the simulations and statistical tests I ran, the results were essentially statistically identical. Because of that, I didn’t see any issue in making the change.
One important point mentioned by a couple of users is that crypto.randomInt() is cryptographically secure, that means it relies on stronger sources of randomness provided by the system. From a general information-security standpoint, this is considered better and more modern practice. That said, for the specific purpose of shuffling cards, randomness quality and statistical distribution should remain practically the same.
So in theory players shouldn’t notice any real difference. Still… I’d like to believe this helps players to receive less bad hands. Haha.
Psychology of the thing
I’ve been reading a lot about this topic recently, and I do believe there is also a psychological factor involved in how we perceive “bad hands” when playing digitally.
When playing at a local store, several factors naturally reduce that feeling:
Downtime between matches — games are slower and more spaced out.
Smaller sample size — you simply play far fewer games in person than online.
Manual shuffling — players tend to pile shuffle, split, and mix cards in ways that reduce streak perception (even if it doesn’t produce true randomness).
Social interaction — chatting, discussing plays, and handling physical cards shifts attention away from variance.
Memory bias — we tend to remember extreme hands (good or bad) more clearly than normal ones.
Online, however, games happen much faster and in much higher volume. When you can play dozens of games in a short period of time, statistical variance becomes much more visible -and sometimes much more frustrating.
Good and bad hands are part of any card game. And we know that in the Gundam Card Game especially, the combination of luck, micro-decisions, and the lack of draw power in certain decks can sometimes leave you with that legendary hand of five pilots - the kind people love to screenshot and post on Discord.
Anyway, I’ll keep monitoring community feedback on this topic. Thanks to everyone who has been participating in the discussion.
Deck Check and Test Hands
Alongside that, I also added a small feature to improve deck visibility and help players test the site’s randomness themselves.

Saved decks now have options to inspect the deck list more easily, showing cards and quantities. In addition, the Hand Test tab now allows you to simulate the opening hand, mulligan and deck sequence using the exact same shuffle algorithm used by the site.
You can click Refresh as many times as you like to see how the RNG treats you. But be careful! You might spend all your lucky hands there before the real match.
Thanks again for playing, supporting the project, and sharing your feedback. ST09 is comming next!
Almost Friday! Cheers, Doug!