I receive as input a list of strings and need to return a list with these same strings but in randomized order. I must allow for duplicates - same string may appear once or more in the input and must appear the same number of times in the output.
I see several "brute force" ways of doing that (using loops, god forbid), one of which I'm currently using. However, knowing Python there's probably a cool one-liner do get the job done, right?
>>> import random
>>> x = [1, 2, 3, 4, 3, 4]
[4, 4, 3, 1, 2, 3]
[3, 4, 2, 1, 3, 4]
Looks like this is the simplest way, if not the most truly random: http://docs.python.org/library/random.html#random.shuffle
You'll have to read the strings into an array and then use a shuffling algorithm. I recommend Fisher-Yates shuffle