Game randomizers (such as those for older Zelda and Metroid games) address this sort of problem with logic to ensure that a seed is solvable. If you need item A to enter dungeon B, item A can't be in that dungeon, for example. This can either be applied as part of the random generation, or as a post-generation verification step which discards the seed if it isn't solvable.
I think this sort of thing would be valuable for randomized run-based games like Slay the Spire, not only to ensure consistency, but also to open up greater flexibility for design. Instead of using fuzzy heuristics so that nearly all seeds are solvable, you can construct a greater diversity of scenarios without risking player frustration.
I think this sort of thing would be valuable for randomized run-based games like Slay the Spire, not only to ensure consistency, but also to open up greater flexibility for design. Instead of using fuzzy heuristics so that nearly all seeds are solvable, you can construct a greater diversity of scenarios without risking player frustration.