I don't think so, I think RandomNumericSequenceGenerator provides thread-safety around the random numbers being selected so RandomRangedNumberGenerator needs to ensure the dictionary is written to in a thread-safe manner.  Once a generator is added to the dictionary for a given Type and set of limits, it's never modified or removed.  In the new version (not yet committed), I used write locks from ReaderWriterLockSlim to protect the logic that checks the dictionary for a key and adds a new value if necessary, but I'm not read-locking the final fetch from the dictionary.  I think I'm going to just eliminate using ReaderWriterLockSlim and just lock that section.  Doing so still lets the test pass and like you said, I can avoid the IDisposable work.