List.shuffle() in Dart?

dart, list, random, set, sorting

Solution

Here is a basic `shuffle` function. Note that the resulting shuffle is not cryptographically strong. It uses Dart's `Random` class, which produces pseudorandom data not suitable for cryptographic use.

import 'dart:math';

List shuffle(List items) {
  var random = new Random();

  // Go through all elements.
  for (var i = items.length - 1; i > 0; i--) {

    // Pick a pseudorandom number according to the list length
    var n = random.nextInt(i + 1);

    var temp = items[i];
    items[i] = items[n];
    items[n] = temp;
  }

  return items;
}

main() {
  var items = ['foo', 'bar', 'baz', 'qux'];

  print(shuffle(items));
}

Problem

I'm looking every where on the web (dart website, stackoverflow, forums, etc), and I can't find my answer. So there is my problem: I need to write a function, that print a random sort of a list, witch is provided as an argument. : In dart as well. I try with maps, with Sets, with list ... I try the method with assert, with sort, I look at random method with Math on dart librabry ... nothing can do what I wana do. Can some one help me with this? Here some draft: ``` var element03 = query('#exercice03'); var uneliste03 = {'01':'Jean', '02':'Maximilien', '03':'Brigitte', '04':'Sonia', '05':'Jean-Pierre', '06':'Sandra'}; var alluneliste03 = new Map.from(uneliste03); assert(uneliste03 != alluneliste03); print(alluneliste03); var ingredients = new Set(); ingredients.addAll(['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']); var alluneliste03 = new Map.from(ingredients); assert(ingredients != alluneliste03); //assert(ingredients.length == 4); print(ingredients); var fruits = <String>['bananas', 'apples', 'oranges']; fruits.sort(); print(fruits); ```

Original source

Related problems