Ideas on how to approach the construction of a probability-heavy algorithm
One plausible approach would be to use integer linear programming.  The following won't be optimal, but it might be decent.

We could try to find quantities $x_1,x_2,\dots$ for the containers, so that if we buy that many containers, the expected number of each item is at least the desired quantity.  This leads to an integer linear program, with one inequality per item

$$\sum_i x_i q_{i,j} p'_{i,j} \ge Q_j$$

where $q_{i,j}$ is the number of item $j$ in container $i$, and $p'_{i,j}$ is the corresponding probability.  Then, we want to minimize $\sum_i x_i p_i$, the total price of these containers, where $p_i$ is the price of the $i$th container.  You could use an off-the-shelf ILP solver to solve for the $x_i$'s, or as a heuristic, use a linear programming solver and ignore that the $x_i$'s need to be integers.

Then, you could randomly sample a container, with container $i$ sampled with weight proportional to $x_i$.  This is a heuristic, but it might help identify which container you most want to buy, so it might work well enough in practice.

You shouldn't expect any efficient algorithm that gives the optimal solution; this problem is NP-hard, by reduction from the knapsack problem.