/// <summary>
        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
        /// </summary>
        /// <filterpriority>2</filterpriority>
        public virtual void Dispose()
        {
            if (_disposed)
            {
                return;
            }

            if (_rng != null)
            {
                _rng.Dispose();
            }
            _rng = null;

            if (_sc != null && _sc is IDisposable)
            {
                ((IDisposable)_sc).Dispose();
            }
            _sc = null;

            _disposed = true;
            GC.SuppressFinalize(this);
        }
 public void Dispose()
 {
     randomNumberGenerator.Dispose();
 }