Swift language: How to call SecRandomCopyBytes

This appears to work:

let data = NSMutableData(length: Int(length))
let result = SecRandomCopyBytes(kSecRandomDefault, length, UnsafeMutablePointer<UInt8>(data.mutableBytes))

Swift 5

let count: Int = <byteCount>
var data = Data(count: count)
let result = data.withUnsafeMutableBytes {    
    SecRandomCopyBytes(kSecRandomDefault, count, $0.baseAddress!) 
}

Swift 4:

var data = Data(count: <count>)
let result = data.withUnsafeMutableBytes { mutableBytes in
    SecRandomCopyBytes(kSecRandomDefault, data.count, mutableBytes)
}

Swift 4 version:

let count = 16
var data = Data(count: count)
_ = data.withUnsafeMutableBytes {
    SecRandomCopyBytes(kSecRandomDefault, count, $0)
}