I need to  run the following method in 100 different threads simultaneously but i cant seem to get it done beacause when I try with only two threads it generates the same random numbers for both. Is there a thread safe method where i can get a random number between two set numbers? I remember I was able to do so in Java using ThreadLocalRandom.current().nextInt() but I cant seem to find the equivalent in c#.
public void iniciarSupermercado()
    {
        Random random = new Random();
        tiempoEntrada = random.Next(300, 600 + 1);
        Thread.Sleep(tiempoEntrada);
        Console.WriteLine("Ha entrado el cliente (Duracion: " + tiempoEntrada + ")");
        cantPasillos = random.Next(8, 13 + 1);
        Console.WriteLine("CLiente va a buscar " + cantPasillos + " pasillos");
        while (cantPasillos > 0)
        {
            cantProdPasillo = random.Next(0, 6 + 1);
            Console.WriteLine(cantProdPasillo + " productos encontrados en pasillo: " + cantPasillos);
            totalProductosCliente = totalProductosCliente + cantProdPasillo;
            while (cantProdPasillo > 0)
            {
                tiempoProducto = random.Next(20, 80 + 1);
                Thread.Sleep(tiempoProducto);
                cantProdPasillo--;
            }
            cantPasillos--;
        }
        Console.WriteLine("Productos : " + totalProductosCliente);
        Console.WriteLine("Cliente progresa al cajero");
        productosCajero = totalProductosCliente;
        while (productosCajero > 0)
        {
            tiempoProdCajero = random.Next(20, 80 + 1);
            productosCajero--;
        }
        Console.WriteLine("El clienta ha comprado " + totalProductosCliente + "y ha estado en el supermercado");
        Console.Read();
    }
}
Sorry for my bad writing, english is not my first language.
