src/encryption/private/Get-RandomBytes.ps1

Function Get-RandomBytes {
    Param(
        [Parameter()][int]$NumBytes = 16
    )

    try {
        $bytes = [byte[]]::new($NumBytes)
        $rngCsp = [System.Security.Cryptography.RNGCryptoServiceProvider]::new()
        $rngCsp.GetBytes($bytes)
        return $bytes
    } finally {
        $rngCsp ? $rngCsp.Dispose() : $null
    }
}