Java tutorial
//package com.java2s; import java.util.*; public class Main { public static int nonUniformRandom(int x, int min, int max, Random r) { return (((randomNumber(0, x, r) | randomNumber(min, max, r)) + randomNumber(0, x, r)) % (max - min + 1)) + min; } public static int randomNumber(int min, int max, Random r) { return (int) (r.nextDouble() * (max - min + 1) + min); } }