public object Choose() { AcquireReaderLock(); try { if (_list.Count > 0) { lock (_random) { return _list[_random.Next(_list.Count)]; } } return null; } finally { ReleaseReaderLock(); } }