Безопасная работа с System.Random и потоками в .NET Core и .NET Framework
Если вы используете .NET 6, по возможности всегда используйте статическое свойство Random.Shared. Если вам нужна поддержка более старых версий .NET Core/.NET Framework, читайте дальше.
Читать