Maybe it's more important to the user that cards are uniform, and the Prosperity restriction was an unimportant "try to do this if you can" rule.
This seems extremely unlikely to me. I think anyone saying "5 from Prosperity" actually wants 5 from Prosperity, that's more important to them than whatever other criteria. They want to play with Prosperity.
As a human, I understand this. But you're missing my point, which is that the generator doesn't understand this.
Most generators out there have one fundamental assumption, which is "If what the user asks for is impossible, report an error and fail."
My generator goes against this assumption, and instead does "If what the user asks for is impossible, try to get as close as you can."
Let's say that the user says "I want at least 5 Prosperity, I want at least 5 Intrigue, and I want at least 5 Seaside." Right now, you can tell this to my generator, and it will give you a set that has 3-4 Prosperity, 3-4 Intrigue, and 3-4 Seaside. It compromises your three desires and fails at all of them, but does something that may have come close to what you wanted.
Let's say that the user says "I want at least 5 Prosperity (important!), I want at least 5 Intrigue (important!), and I want at least 5 Seaside (not important)." Then the generator will make you a set of 5 Prosperity and 5 Intrigue. Your two important constraints got satisfied, your unimportant one got shafted. You can even tweak the importance values so that you get a 5-4-1 distribution. (Although honestly, if you're at the "tweaking importance values" stage, maybe you should consider just changing the "5"s? Just saying.)
Having said that, my generator does have some high-level constraints that are in the "super-important" class, where lower constraints cannot override them, and if they can't be satisfied, the generator will fail and issue an error. Some of them are:
* The generator doesn't give you cards from a set you don't own. If you try to generate a normal set and you don't own 10 distinct cards, it will fail ignominiously.
* The generator doesn't give you more or fewer cards than are specified. If you ask for a 13-card set, you will get a 13-card set. You will never get 12 or 14 even if that would make your other constraints more satisfied. If you only own 12 cards and you ask for a 13-card set, the generator will fail.
* If you said you want a uniform distribution, you will get one.
Right now, the problem is that "uniform" is super-important and will always be prioritized over "favor Prosperity cards". This isn't a mistake in the code, it's just code design that doesn't match what you expect.
What it seems like I need to do to satisfy you guys is to put more stuff in the "super-important" category (such as "I want to play with 5 Prosperity dammit!"), and bump "uniform" down to a "more important than other stuff but not as important as the super-important stuff".
This way, if the user says "I want 5 Prosperity (super-important), 5 Intrigue (super-important), 5 Seaside (super-important), and only 10 cards (super-important)", it should fail and give you an error message; but if the user says "I want 5 Prosperity (super-important), 5 Intrigue (super-important), 5 Seaside (not important), and only 10 cards (super-important)", it should actually give you something.
That's a fundamental extra layer on top of the existing code, and, as I said, it's substantially more work and I don't have the next few weekends free. So, yeah, please don't be too disappointed if it doesn't show up quickly.