In addition to the other answers, this is worse than a simple Fisher-Yates shuffle because it is too slow. The qsort algorithm is O(n*log(n)), the Fisher-Yates is O(n).
Some more detail is available in Wikipedia on why this kind of "shuffle" does not generally work as well as the Fisher-Yates method:
Comparison with other shuffling
  algorithms
The Fisher-Yates shuffle is quite
  efficient; indeed, its asymptotic time
  and space complexity are optimal.
  Combined with a high-quality unbiased
  random number source, it is also
  guaranteed to produce unbiased
  results. Compared to some other
  solutions, it also has the advantage
  that, if only part of the resulting
  permutation is needed, it can be
  stopped halfway through, or even
  stopped and restarted repeatedly,
  generating the permutation
  incrementally as needed. In high-level
  programming languages with a fast
  built-in sorting algorithm, an
  alternative method, where each element
  of the set to be shuffled is assigned
  a random number and the set is then
  sorted according to these numbers, may
  be faster in practice[citation
  needed], despite having worse
  asymptotic time complexity (O(n log n)
  vs. O(n)). Like the Fisher-Yates
  shuffle, this method will also produce
  unbiased results if correctly
  implemented, and may be more tolerant
  of certain kinds of bias in the random
  numbers. However, care must be taken
  to ensure that the assigned random
  numbers are never duplicated, since
  sorting algorithms in general won't
  order elements randomly in case of a
  tie. A variant of the above method
  that has seen some use in languages
  that support sorting with
  user-specified comparison functions is
  to shuffle a list by sorting it with a
  comparison function that returns
  random values. However, this does not
  always work: with a number of commonly
  used sorting algorithms, the results
  end up biased due to internal
  asymmetries in the sorting
  implementation.[7]
This links to here:
just one more thing While writing this
  article I experimented with various
  versions of the methods and discovered
  one more flaw in the original version
  (renamed by me to shuffle_sort). I was
  wrong when I said “it returns a nicely
  shuffled array every time it is
  called.”
The results are not nicely shuffled at
  all. They are biased. Badly. That
  means that some permutations (i.e.
  orderings) of elements are more likely
  than others. Here’s another snippet of
  code to prove it, again borrowed from
  the newsgroup discussion:
N = 100000
A = %w(a b c)
Score = Hash.new { |h, k| h[k] = 0 }
N.times do
  sorted = A.shuffle  
  Score[sorted.join("")] += 1
end
Score.keys.sort.each do |key|
  puts "#{key}: #{Score[key]}"
end
This code
  shuffles 100,000 times array of three
  elements: a, b, c and records how many
  times each possible result was
  achieved. In this case, there are only
  six possible orderings and we should
  got each one about 16666.66 times. If
  we try an unbiased version of shuffle
  (shuffle or shuffle_sort_by), the
  result are as expected:
 
 abc: 16517
 acb: 16893
 bac: 16584
 bca: 16568
 cab: 16476
 cba: 16962
Of course,
  there are some deviations, but they
  shouldn’t exceed a few percent of
  expected value and they should be
  different each time we run this code.
  We can say that the distribution is
  even.
OK, what happens if we use the
  shuffle_sort method?
 abc: 44278 
 acb: 7462
 bac: 7538
 bca: 3710
 cab: 3698
 cba: 33314
This is not
  an even distribution at all. Again?
It shows how the sort method is biased and goes into detail why this is so. FInally he links to Coding Horror:
Let's take a look at the correct
  Knuth-Fisher-Yates shuffle algorithm.
for (int i = cards.Length - 1; i > 0; i--)
{
  int n = rand.Next(i + 1);
  Swap(ref cards[i], ref cards[n]);
}
Do you see the difference? I missed
  it the first time. Compare the swaps
  for a 3 card deck:
 
Naïve shuffle   Knuth-Fisher-Yates shuffle
rand.Next(3);    rand.Next(3);
rand.Next(3);    rand.Next(2);
rand.Next(3); 
The naive shuffle
  results in 3^3 (27) possible deck
  combinations. That's odd, because the
  mathematics tell us that there are
  really only 3! or 6 possible
  combinations of a 3 card deck. In the
  KFY shuffle, we start with an initial
  order, swap from the third position
  with any of the three cards, then swap
  again from the second position with
  the remaining two cards.