A Latin square of size n is an arrangement of n symbols in an n-by-n square in such a way that each row and column has each symbol appearing exactly once.

A randomised Latin square generates random configurations of the symbols for any given n.

Example n=4 randomised Latin square

0 2 3 1
2 1 0 3
3 0 1 2
1 3 2 0
Task

 Create a function/routine/procedure/method/... that given n generates a randomised Latin square of size n.
 Use the function to generate and show here, two randomly generated squares of size 5.
Note
 
Strict Uniformity in the random generation is a hard problem and not a requirement of the task.

Reference

 Wikipedia: Latin square
 OEIS: A002860


rls=: 3 : 0
  s=. ?~ y             NB. "deal" y unique integers from 0 to y
  for_ijk. i.<:y do.
    NB. deal a new row. subtract it from all previous rows
    NB. if you get a 0, some column has a matching integer, deal again
    whilst. 0 = */ */ s -"1 r do. 
      r=. ?~ y 
    end.
    s=. s ,,: r        NB. "laminate" successful row to the square 
  end.
)
 