Posted to tcl by mjanssen at Thu Aug 30 15:36:47 GMT 2007view pretty
proc shuffle list {
set len [llength $list]
while {$len} {
set n [expr {int($len*rand())}]
set tmp [lindex $list $n]
lset list $n [lindex $list [incr len -1]]
lset list $len $tmp
}
return $list
}
proc range {start end} {
set res {}
for {set i $start} {$i<=$end} {incr i} {
lappend res $i
}
return $resr
}
proc draw {start end number} {
lrange [shuffle [range $start $end]] 0 $number-1
}