Randomクラスと同様、RandomNumberGeneratorクラスで乱数を生成するためにはまずインスタンスを作成する必要があります。 RandomNumberGeneratorは抽象クラスであるため、インスタンスはnewによる作成ではなく、Createメソッドを使って作成します。

.NET Framework 4.0以降のRandomNumberGeneratorはIDisposableインターフェイスを実装しています。 そのため、usingステートメントを使って次のようにインスタンスの作成・破棄を行います。

RandomNumberGeneratorインスタンスの作成と破棄 
using System;
using System.Security.Cryptography;

class Sample {
  static void Main()
  {
    // RandomNumberGenerator.Createメソッドでインスタンスを作成する
    // (usingステートメントを使うことで、スコープから抜けた時点で自動的にDisposeさせる)
    using var rng = RandomNumberGenerator.Create();

    // 以下、インスタンスを使用するコードを記述する
    var nonce = new byte[16];

    rng.GetBytes(nonce);

    // スコープから抜けた時点で、インスタンスが自動的にDisposeされる
  }
}

RandomNumberGenerator.Createメソッドに引数(乱数ジェネレータの名前)を指定せずに作成したインスタンスの場合はデフォルトの乱数ジェネレータが生成されます。

デフォルトのジェネレータに対してはDisposeメソッドを呼び出す必要はないようですが、乱数ジェネレータの種類によってはアンマネージリソースの解放が必要な実装となっている可能性があるため、usingステートメントによって必ずDisposeメソッドが呼び出されるようにしておくのが無難です。

usingステートメントとインスタンスの破棄についてはオブジェクトの破棄 §.usingステートメントを参照してください。