sig
  type t = java'util'Random java_instance
  val make : unit -> JavaRandom.t
  val make_of_seed : java_long -> JavaRandom.t
  val make_secure :
    ?algorithm:JavaString.t -> ?provider:JavaString.t -> unit -> JavaRandom.t
  val current_thread_local : unit -> JavaRandom.t
  val next_boolean : JavaRandom.t -> java_boolean
  val next_bytes : JavaRandom.t -> java_byte java_byte_array -> unit
  val next_double : JavaRandom.t -> java_double
  val next_float : JavaRandom.t -> java_float
  val next_gaussian : JavaRandom.t -> java_double
  val next_int : JavaRandom.t -> java_int
  val next_int_bound : JavaRandom.t -> java_int -> java_int
  val next_long : JavaRandom.t -> java_long
  val set_seed : JavaRandom.t -> java_long -> unit
  val null : JavaRandom.t
  external is_null : JavaRandom.t -> bool = "java is_null"
  external is_not_null : JavaRandom.t -> bool = "java is_not_null"
  val wrap : JavaRandom.t -> JavaRandom.t option
  val unwrap : JavaRandom.t option -> JavaRandom.t
end