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 (var rng = RandomNumberGenerator.Create()) {
      // 以下、インスタンスを使用するコードを記述する
      var nonce = new byte[16];

      rng.GetBytes(nonce);
    } // usingステートメントから抜けた時点で、インスタンスが自動的にDisposeされる
  }
}

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

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

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