Posted to tcl by mjanssen at Thu Aug 30 15:36:47 GMT 2007view raw

  1. proc shuffle list {
  2. set len [llength $list]
  3. while {$len} {
  4. set n [expr {int($len*rand())}]
  5. set tmp [lindex $list $n]
  6. lset list $n [lindex $list [incr len -1]]
  7. lset list $len $tmp
  8. }
  9. return $list
  10. }
  11.  
  12. proc range {start end} {
  13. set res {}
  14. for {set i $start} {$i<=$end} {incr i} {
  15. lappend res $i
  16. }
  17. return $resr
  18. }
  19.  
  20. proc draw {start end number} {
  21. lrange [shuffle [range $start $end]] 0 $number-1
  22. }