# File lib/backports/extra/random/implementation.rb, line 22
    def rand(limit = Backports::Undefined)
      case limit
        when Backports::Undefined
          @mt.random_float
        when Float
          limit * @mt.random_float unless limit <= 0
        when Range
          _rand_range(limit)
        else
          limit = Backports.coerce_to_int(limit)
          @mt.random_integer(limit) unless limit <= 0
      end || raise(ArgumentError, "invalid argument #{limit}")
    end