xref: /plan9/sys/src/libc/port/nrand.c (revision 79a6d22eb4218e577fe5e07f95f3a4ec0e112f7f)
1 #include	<u.h>
2 #include	<libc.h>
3 
4 #define	MASK	0x7fffffffL
5 
6 int
nrand(int n)7 nrand(int n)
8 {
9 	long slop, v;
10 
11 	if(n < 0)
12 		return n;
13 	if(n == 1)
14 		return 0;
15 	/* and if n == 0, you deserve what you get */
16 	slop = MASK % n;
17 	do
18 		v = lrand();
19 	while(v <= slop);
20 	return v % n;
21 }
22