Hah, my improved data collection script! Now with less running off the screen edge, better identification, and a brand new feature of using the Output Console to dump collected data for copy/paste.
As for the card generation algorithm, I'm now finally getting a rough idea of what's going on, although it's all educated guesses.
First, if you lack Map Cards, the game will skip generating an enemy card and go straight to producing a zero-value Map Card.
Now, if you have any Map Cards, a single 100-sided roll is made to determine whether it should generate an enemy card. If so, make it. If not, start rolling for map cards. If it picks a Map Card ID that it doesn't like, then it will roll dice again until it comes up with an allowed Map Card ID. This "roll until success" method generally skews the chances of other cards showing up, and will also explain why it apparently rolls a random number of times based on my tweaks to the RNG itself.
Besides, while running the bot, I've seen streaks of the exact same card showing up repeatedly, where previously I've not been seeing any of that card for many, many hundreds of RNG rolls. If rolls #0 ~ #6 did not generate an allowed card, then the game will ultimately end up picking RNG roll #7 no matter which of #0 ~ #6 you started it at. Which would explain these streaks
In any case, if this theory is correct, then there's simply one list that identifies the card, and as you progress in the game, different stuff in that list gets allowed. Aside from skews caused by "roll until success", the relative probabilities of finding this one type of card versus finding this other type should remain roughly equal. So find the floor with the most blue cards and the least of other cards, and you're good!
... These are all guesses, though.