So I'm running a somewhat sandbox typed game and it relies quite a bit on random encounters for various locales. Because the players are allowed to muck around, there tends to be quite a bit of change to what kinds of encounters are available. For example, discovering a special location can only happen once; if you raze the Goblin camp you won't encounter anymore Goblins, etc.
Right now, it's a bunch of work on my end to write dice-based encounter tables, and from the player's perspective it's sort of vague and non-exciting. They have to take it on fate that I'm adding things based on what happens around them and they don't really get the feeling of accomplishment that they should when they change the world and thus the things in it change with them.
I was thinking about the idea of changing the random encounter table to physical encounter decks, with each card representing an encounter. I could print them to cardstock and then instead of me rolling, I could draw actual cards and reveal them to the players. Then, I can also physically shuffle in new cards based on things that happen, or search the deck and remove cards when they accomplish something.
However, one of the advantages of the dice-based encounters is that I always roll 2 dice, which gives a nice bell-curve that allows me to make some encounters more likely than others. When creating the deck, I'd ideally like to keep that distribution, and ideally I'd like to not have to add 5 copies of all the common encounters. (Some events are just rarer then others...)
Is there a known mechanic from a published game, or a tested homebrew solution that allows me to have an encounter deck in which not every card is as likely to be resolved as another, without having lots of copies?