use ActiveSupport::SecureRandom instead native