Lloyd Linklater wrote:
> dang it!  I *knew* that I should have been thinking more ruby and less 
> pascal.  This may look more rubyish:
> 
> def arr_rand(ar)
>   arr = []
>   while ar.length > 0 {arr << ar.delete_at(rand(ar.length))}
>   arr
> end

Yes, that is fairly simple to understand. But it is equivalent to 
sort_by {rand} in that it does not actually change the array that is 
passed in. How about this variation?

def randomize!(ary)
   temp = ary.dup
   ary.clear
   ary << temp.delete_at(rand(temp.length))     until temp.empty?
   ary # this line is optional--want to return the array
       # we've just randomized?
end


Dan