I'm not "super cool" in that I don't code, but I'm curious, like you. The closest thing I could find to an expert on the matter was a friend of mine who did his Ph.D. at MIT in AI, and he thought it was worth a shot...but was totally uninterested in giving it a shot himself.

I think by "genetic algorithm" you're talking about what I discussed with him -- essentially, making every choice the AI makes a question of its genetic code.

It seems to me this would be most interesting with a given "kingdom" set-up of 10 (or 11 with Young Witch) cards, since then you might be able (in theory) to approximate the "best player" of that given set-up.

Maybe you've already worked this out, but this is the way I imagine it going, using the choice of what to buy in the regular buy phase as an example:

Let's say I have played $2, so I only have enough money to buy a Lighthouse, a Hamlet, a Curse, a Copper, or nothing. Each of these 5 options is attached to its own distinct set of coefficients, ranging from, say, 0 to 1. The coefficients would be given, for example, for every variable that might be important -- the number of Coppers in my discard, for example, or the number of buys I have left, or the number of actions I've played this turn, or the total number of victory points in my deck, or the number of victory points in my opponent's deck.

By averaging all these coefficients for one option, I can come up with a metric for my desire to buy, say, a Lighthouse, and find it's 0.75. Then I do the same for the other 4 options, and I get, maybe, 0.65, 0.05, 0.10, and 0.30, and so my desire to by a Lighthouse is greater than my desire to buy anything else (including buying nothing), so I do that.

You could do this too for yes/no decisions or pretty much any decision in the game, I think (I haven't thought over everything).

I'm excited about this, but have no ability to implement it, so...