This is a good point! I can imagine that troubleshooting would be more time consuming if you have more then one AI which uses the same broken part. On the other hand you would know where to fix the other AI before you even look at it.
But like i said i don't know much about programming myself. I just see interesting stuff people do and i try to apply it theoretically on other things.
As I've said, all you can really do is work with what you're given, and what you're given is some random cards from your deck. Now, you can go into any amount of detail you like when it comes to making the AI for a particular card (e.g. defining circumstances in which it will prefer one target over another), but it would get very convoluted if you get too invested in it. Even so, taking each card as it comes is a modular system, and easier to manage and tinker with.
One thing I'd like to hear from someone who knows about AI is: is my idea any good? Is there an alternative system to calculating desirability for each action that would be more suitable for this kind of game?