     /// Generates a random `UInt64`.
     ///
     /// - returns: The next two `UInt32`'s in the sequence concatenated into a `UInt64`
-    static func random() -> UInt64 {
+    public static func random() -> UInt64 {
         let upper = UInt64(generator.next()!) << 32
         let lower = UInt64(generator.next()!)
         return upper + lower

    /// - parameter upper: Upper bound of uniform distribution. Defaults to 1.
    ///
    /// - returns: A pseudo-random number from the range [lower, upper).
    static func uniform(lower: Float = 0, _ upper: Float = 1) -> Float {
        let f = Float(generator.next()!) / Float(generator.maxValue)
        let d = upper - lower
        return f*d + lower

    /// - parameter upper: Upper bound of uniform distribution. Defaults to 1.
    ///
    /// - returns: A pseudo-random number from the range [lower, upper).
    public static func uniform(lower: Double = 0, _ upper: Double = 1) -> Double {
        let f = Double(generator.next()!) / Double(generator.maxValue)
        let d = upper - lower
        return f*d + lower
