This Python code shows you how to pick a random number from a list ...
# picking random numbers from a list
# Python2 syntax
def pick_rand(rand_list, start=-1, incr=1):
"""
closure based function that cycles through rand_list one index
at a time for each call, index resets to zero at end of list
"""
def inner():
inner.index += incr
if inner.index >= len(rand_list):
inner.index = 0
return rand_list[inner.index]
inner.index = start
return inner
# random number list of 100 numbers from 0 to 99
# created by timing user input events
rand_list = [
6, 40, 3, 6, 93, 81, 84, 56, 43, 31, 34, 21, 9, 96, 84, 87, 6, 9,
12, 0, 87, 59, 31, 18, 6, 9, 96, 68, 56, 59, 31, 3, 75, 62, 34, 21,
9, 96, 68, 56, 43, 0, 71, 59, 31, 34, 6, 78, 65, 37, 25, 96, 84, 71,
59, 46, 34, 6, 9, 81, 53, 40, 28, 84, 56, 43, 65, 84, 87, 59, 62,
50, 21, 9, 96, 84, 71, 59, 46, 18, 90, 93, 81, 84, 71, 59, 31, 34,
53, 40, 46, 3, 75, 75, 50, 6, 65, 21, 87, 15
]
# testing only ...
print len(rand_list) # 100
print "average = %d" % (sum(rand_list)//len(rand_list)) # 48
# needed!
rand = pick_rand(rand_list)
# show 10 random numbers
for k in range(10):
print rand(),
print
# show another 10 random numbers
for k in range(10):
print rand(),
# a time based random number generator
# that uses the random time between a user's input events
# to create a list of random numbers
# Python2 syntax
import time
def random_number(low, high):
"""
a time based random number generator
uses the random time between a user's input events
returns an integer between low and high-1
"""
return int(low + int(time.time()*1000) % (high - low))
low = 0
high = 100
count = 0
rand_list = []
print "Press enter for a random number (q to quit):"
while True:
sel = raw_input()
if sel == 'q':
break
rand = random_number(low, high)
rand_list.append(rand)
# give user feedback
print "%d --> %d" % (count, rand)
count += 1
print rand_list
"""my rand_list 0f 100 random numbers between 0 and 99 -->
[6, 40, 3, 6, 93, 81, 84, 56, 43, 31, 34, 21, 9, 96, 84, 87, 6, 9,
12, 0, 87, 59, 31, 18, 6, 9, 96, 68, 56, 59, 31, 3, 75, 62, 34, 21,
9, 96, 68, 56, 43, 0, 71, 59, 31, 34, 6, 78, 65, 37, 25, 96, 84, 71,
59, 46, 34, 6, 9, 81, 53, 40, 28, 84, 56, 43, 65, 84, 87, 59, 62,
50, 21, 9, 96, 84, 71, 59, 46, 18, 90, 93, 81, 84, 71, 59, 31, 34,
53, 40, 46, 3, 75, 75, 50, 6, 65, 21, 87, 15]
"""
I made the rand_list relatively short for this example, normally you may want to go for a length of >1000.