Strange Array behavior after upgrading to Rails 2.0.2

ActiveSupport now adds an Array#rand method which returns a random
element, this overrides Kernel#rand which returns a float.

I think that changing the line

  point = rand * total


point = Kernel::rand * total

will fix this.

Couldn't you just use Array#rand ?


I thought of suggesting that, but he's trying to do something similar,
but with a parameter to provide a weighted distribution. The rand
method in ActiveSupport only gives a uniform distribution.

It might be useful if this is only used with ActiveSupport to put something like

   return rand unless weightt

at the top of the method though.