def sample_with_replacement(sample=1)
          if @data.respond_to? :sample_with_replacement
            @data.sample_with_replacement sample
          else
            valid = indexes(*Daru::MISSING_VALUES).empty? ? self : reject_values(*Daru::MISSING_VALUES)
            vds = valid.size
            (0...sample).collect { valid[rand(vds)] }
          end
        end
Returns an random sample of size n, with replacement,
only with non-nil data.

In all the trails, every item have the same probability
of been selected.