Personally, I try to split the luck-based factors into 'kingdom selection factors' and then 'game design factors'. Ultimately, Dominion has a fair amount of luck/randomness to it, and addressing all of those factors would totally remake the game (it wouldn't be Dominion anymore, and it wouldn't be a deck-building game with discrete hands, either). That aside, I feel like there are a few definite ways to minimize the effect of luck/randomness on how the game plays out by artificially selecting kingdoms. The first and biggest one, in my opinion, is the 5/2 vs 4/3 split opening strength difference in some kingdoms. For example a Witch/Chapel opening vs. a Silver/Chapel opening.. that's very likely going to go to the player opening 5/2, *especially* if they're in first seat anyway. I've tried a variety of methods for minimizing this with kingdom selection, but the one I ultimately implemented was to grab the councilroom.com best-and-worst opening buys database (while it was available), and to use it to determine the relative strength of each possible opening. The system implemented in my card picker program takes that data and will reject any kingdom where the strength difference between the best 5/2 opening and the best 4/3 opening is outside of 1.5 levels. Yes, it does rely on a whole lot of averages (i.e. councilroom.com data), and doesn't work at all for Dark Ages (no data). But it seemed to work reasonably well for rejecting the really really broken kingdom sets out there where the 5/2 opening absolutely dominates the game.