I think you should use following steps
lets we want to generate $m$ samples to use in Monte-Carlo estimator
1) Generate $m$ sample from following distribution (with replacement )
\begin{eqnarray}
\begin{array}{c|ccc}
k & 1 & 2 & \cdots & n \\ \hline
probability & \frac{\lambda_1}{\sum \lambda_i} & \frac{\lambda_2}{\sum \lambda_i} & \cdots & \frac{\lambda_n}{\sum \lambda_i} \\
\end{array}
\end{eqnarray}
and save it(in vector named $K$,In standard notation $\sum \lambda_i=1$ So you can just ignore $\sum \lambda_i$).
2) Now for each $K=k$ generate sample from $\mathbb P_k(x)$
lets do it with a simple example
$X\sim .2 Normal(0,1)+.8 Normal(5,1)$
lets we want to estimate $E(X)$ (that exact value is $4$ and estimate should be near $4$). I do it in R software.
> m<-100000
> k.vector<-sample(1:2,size=m,p=c(.2,.8)/sum(c(.2,.8)),replace=T)
> l1<-length(which(k.vector==1))
> l2<-m-l1
> random.g<-c(rnorm(l1,0,1),rnorm(l2,5,1))
> mean(random.g)
[1] 4.003443
This algorithm is a simple method based on conditional porbability
$$f_X(x)=\sum \mathbb P(X=x|K=k) P(K=k)$$
so in first step we produce one $k$ and then generate one $x$ form $\mathbb P(X|K=k)=\mathbb P_k(x)$. Next use this generated sample to estimate what you want.