0が1/2で50%、
1が1/4で25%、
2が1/8で12.5%
3と4が1/16でそれぞれ6.25%
なら
1〜分母の最大値(16)の範囲の整数乱数返して(0〜15でもいいが)
1,2,3,4,5,6,7,8なら0、(8/16=1/2=50%)
9,10,11,12なら1、(4/16=1/4=25%)
13,14なら2、、(2/16=1/8=12.5%)
15なら3、16なら4、(1/16=6.25%)
とすれば、狙った確率で出るようになるけど、
こういうのは変動する規則数であって乱数とは呼ばないよ

乱数がいくつの時に、どの規則数を返すかは算術演算でやってもいいけど
32パターンくらいならSelect Caseでもいいんじゃね?

というか分数と比率を習う小学4,5年生程度の頭があれば
この程度の算出方法くらい簡単に思いつくと思うんだけど、なんでこんなので悩んでるの?