Hi Avin,
I'm glad you like the program.
I actually have a partially-finished v1.1.3 in progress, that already addresses a few of the points you mentioned.
For example, in v1.1.3, with Tunnel I did just that.. the redundancy filter will ensure that Tunnel is paired up with either a hand-reducing attack or there is a card that allows for discarding.
I'll double-check Trader, too, but even in v1.1.2 I'm pretty sure it's technically outside of the 'make this card useful by always being present with an attack' check.
The 'Only allow Reaction and Lighthouse cards..' filter already does that, I just need to fix the wording.
Same with the 'Don't allow more than 1 Reaction' filter.
Your question about how the program selects cards is one that I've been thinking about for a long time.. yes, right now the program simply throws out completed Kingdom sets that don't match all the criteria selected. It's quick to calculate, and at the bottom of the screen you'll see a little counter that shows how many sets were thrown out before arriving at one that matched. It does, as you mention, reduce the overall frequency of certain cards being present in the set.
I've looked into methods for pre-selecting 'partial' Kingdoms, however these end up producing an opposite effect.. increases the frequency of multiple cards of a selected-for type appearing in the set.
I'd definitely be open to considering other methods for selecting cards, if you can think of one that would have less of an effect on card frequency.
I'd also in the past thought about selecting for 'positive combos'.. however I ended up not liking the results. The problem there is that sets end up being too obvious. If the program specifically looks to add well-known combos, it ends up probably eliminating a lot of novelty and potentially unique card interactions. So instead I went with a 'does not play well without' approach, looking to boost the effectiveness of specific 'weak' cards by trying to at least pair them up with something.. the goal being to try to ensure that every card in the Kingdom set is worth time considering (i.e. there are no obviously-useless cards in the set). The filters still aren't quite there yet even in 1.1.3, but I'd welcome suggestions on how to better achieve that goal.
I'll post v1.1.3 here momentarily, too, along with a list of what's changed/added.