Here's another one:;WITH g(g) AS (SELECT CAST(NEWID() AS BINARY(10))),
n(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM n WHERE n<10),
a(a) AS (SELECT '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')
SELECT (SELECT ''+SUBSTRING(a,CAST(SUBSTRING(g,n,1) AS TINYINT)%36+1,1)
FROM g CROSS JOIN n CROSS JOIN a ORDER BY NEWID() FOR XML PATH(''))
You can further randomize and control the characters by changing the string in the A CTE.
edit: fixed a dupe character