Posted to tcl by mjanssen at Thu Aug 30 15:38:28 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 }