static int random(int n, Random r default defaultRandomGenerator()) { ret random(r, n); } static int random(Random r, int n) { return n <= 0 ? 0 : getRandomizer(r).nextInt(n); } static double random(double max) { return random()*max; } static double random() { return random_random.nextInt(100001)/100000.0; } static double random(double min, double max) { return min+random()*(max-min); } // min <= value < max static int random(int min, int max) { return min+random(max-min); } static int random(int min, int max, Random r) { ret random(r, min, max); } static int random(Random r, int min, int max) { return min+random(r, max-min); } static A random(L l) { ret oneOf(l); } static A random(Collection c) { if (c instanceof L) ret random((L) c); int i = random(l(c)); ret collectionGet(c, i); } ifclass IntRange static int random(IntRange r) { ret random(r.start, r.end); } endif static Pair random(Map map) { ret entryToPair(random(entries(map))); }