Randomly shuffle a List

35,815

I think all you want is this, it's a simple way to do it;

Random rand = new Random();
var models = garage.OrderBy(c => rand.Next()).Select(c => c.Model).ToList();

//Model is assuming that's the name of your property

Note : Random(), ironically, isn't actually very random but fine for a quick simple solution. There are better algorithms out there to do this, here's one to look at;

http://en.wikipedia.org/wiki/Fisher-Yates_shuffle

Share:
35,815
Admin
Author by

Admin

Updated on August 30, 2020

Comments

  • Admin
    Admin over 3 years

    Possible Duplicate:
    Randomize a List<T> in C#
    shuffle (rearrange randomly) a List<string>
    Random plot algorithm

    Hi I have the following list and I want to output the model into a list but do so randomly. I have seen a few examples but they seem to be really convuluted. I just want a simple way to do this?

    List<Car> garage ----randomise------> List<string> models
    
    
    List<Car> garage = new List<Car>();
    
    garage.Add(new Car("Citroen", "AX"));
    garage.Add(new Car("Peugeot", "205"));
    garage.Add(new Car("Volkswagen", "Golf"));
    garage.Add(new Car("BMW", "320"));
    garage.Add(new Car("Mercedes", "CLK"));
    garage.Add(new Car("Audi", "A4"));
    garage.Add(new Car("Ford", "Fiesta"));
    garage.Add(new Car("Mini", "Cooper"));