Programming-Idioms

New implementation

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
#include <stdlib.h>
int pick(int a, int b)
{
	int upper_bound = b - a + 1;
	int max = RAND_MAX - RAND_MAX % upper_bound;
	int r;

	do {
		r = rand();
	} while (r >= max);
	r = r % max;
	return a + r;
}
(+ a (rand-int (- b a)))
#include <random>
std::mt19937 gen;
std::uniform_int_distribution<size_t> uid (a, b);
uid (gen);
using System;
Random r = new Random();
return r.next(a, b + 1);
import std.random;
auto x1 = uniform(a, b+1);
auto x2 = uniform!"[]"(a, b);
import 'dart:math';
int pick(int a, int b) => a + new Random().nextInt(b - a + 1);
a - 1 + :rand.uniform(b-a+1)
:crypto.rand_uniform(a, b)
crypto:rand_uniform(A, B)
real :: c
integer :: res

call random_number(c)
res = int((b-a+1)*c)
import "math/rand"
func pick(a,b int) int {
	return a + rand.Intn(b-a+1)
}
import System.Random
let pick (a, b) = randomRIO (a, b) :: IO Integer
 in pick (1, 6) >>= print

function pick(a, b) {
    return a + Math.floor(Math.random() * (b - a + 1));
}
import java.util.Random;
int pick(int a, int b){
	return a + new Random().nextInt(b - a + 1);
}
math.random(a, b)
a+arc4random_uniform(b+1)
rand($a, $b)
Math
var
  _a, _b, _r: Integer;
begin
  _r := RandomRange(_a, _b);
end; 
my ($min, $max) = (5, 25);
my $val = $min + int(rand($max-$min));
import random
random.randint(a,b)
rand(a..b)
extern crate rand;
use rand::distributions::{IndependentSample, Range};
fn pick(a: i32, b: i32) -> i32 {
    let between = Range::new(a, b);
    let mut rng = rand::thread_rng();
    between.ind_sample(&mut rng)
}
use rand::distributions::Uniform;
Uniform::new_inclusive(a, b).sample(&mut rand::thread_rng())
import util.Random
a + Random.nextInt(b + 1)