Spoil cards are not distributed evenly

I found only 1 topic http://www.conquerclub.com/forum/viewtopic.php?f=57&t=111357&p=2492787&hilit=+spoil#p2492787 that touched on this subject so forgive me if it has been discussed before.
Concise Description:
Specifics/Details:
How this will benefit the site and/or other comments:
I am a software developer, I would be more than happy to volunteer my time to review the current code and/or implement the algorithms.
Concise Description:
- From my observation it appears a cashed card has an equal percentage chance of being put back into play and handed out as a "New" spoil card. You would think a totally unused card from the deck should pop up first but it doesn't appear to work that way. IMO that's a bad algorithm
- 5x5 < 80, duplicate territories should not be handed out
Round 10 - 2010-08-05 14:57:03 - Nikita42 cashed in a group of F Train: Sunset Park Station, A Train: Hollis Station, and Jackson Heights nuking each region
Round 11
You can't exactly see the following but boken received the same spoil card F Train: Sunset Park Station - On 2010-08-07 13:49:17 - boken ended the turn and got spoils
Round 12 - On 2010-08-08 19:34:45 - boken cashed in a group of Bedford Park, Gramercy, and F Train: Sunset Park Station nuking each region
In a face to face game I would never have received F Train: Sunset Park Station that soon. We would not return a set of cashed cards to the deck and then reshuffle the deck. We would: - 1) Put the cashed cards at the bottom of the deck and let them resurface
OR - 2) Put them on the side in a used pile and when all unused cards have been dealt reshuffle the used pile.

Using game 7351029 as a reference
In this case the number of players is 5 with 80 territories on the map
Specifics/Details:
- A few suggestions to make the distribution of available spoil cards more uniform and fairer all around
- 3) Implement algorithms like item numbers (1) or (2) above
- 4) Create a new/different algorithm
Different Algorithm - 5) In the beginning all cards in the deck have a weighted value of 1
- 6) After the end of any turn all remaining cards in the available deck increment the weighted value by 1
- 7) Whenever a card is returned to the deck the weighted value starts at 0
- 8) Handing out a card would be the same except
- 9) If a card has a weighted value of N then that card would have N chances to be chosen
- 10) If a card has a weighted value of 0 then there is 0% chance it will be chosen
- 11) In this way weighted cards have a better chance to be dealt out and newer cards entering the deck have less of a chance
How this will benefit the site and/or other comments:
- Better distribution of spoil cards so the same card is not handed out as soon
- Provide the new algorithms as a game option and get feedback from the community
I am a software developer, I would be more than happy to volunteer my time to review the current code and/or implement the algorithms.