Нужно смотреть на результат rand как на некое число, вероятность выпадания которого равно 1 / N. И чтобы ваше реальное число выпадало в два раза чаще, ее вероятность должна быть равна двум этим числам 2 * (1 / N).
В вашем примере, вероятность выпадания любого числа равна 1 / 100, чтобы для чисел от 0 до 50 вероятность была например 2 / N, нужно чтобы они занимали по два числа из результата randint.
rand = np.random.randint(150, size=1)[0]
if rand < 100:
res = rand // 2
else:
res = rand - 50
т.е. если rand < 100, то это числа первой половины, вероятность каждого из которой равны 2 / N, а для rand > 100 and rand < 150 все также 1 / N