4.3BSD/usr/contrib/icon/book/10/shuffle1.icn

procedure shuffle(s)
   local i
   i := *s
   while i >= 2 do {
      s[?i] :=: s[i]
      i -:= 1
      }
   return s
end