You simply need to map your probabilities into a linear range. For simplcity, lets assume you have only 2 cards/deck and you want a 25% chance that the card is from deck #1 and a 75% chance it's from deck 2.
Create a equally distributed random number in the range [0...8] and create the following mapping:
[0 .. 1] --> pick Card A, Deck 1
[1 .. 2] --> pick Card B, Deck 1
[2 .. 5] --> pick Card A, Deck 2
[5 .. 8] --> pick Card B, Deck 2
In general, just create a "calibration curve" that maps the ordered array of all cards into a function with a slope that represents the probability. In your case, it would have three linear segments, with different slopes for each deck. For each pick, create a random number in the range of [Ymin, Ymax] and find th
e card by inverting your function and truncating the fractional part.