You can use ranking functions and slice the inner results into quarters and then partition again for a final pivot on quarter. The quarters are not random but evenly distributed. In a table with 100 rows Row 1,25,50 and 100 would go into column1. However, using a guid and some ordering in the two inner queries would yield randomness.
SELECT
[1] AS COL_1,[2] AS COL_2,[3] AS COL_3,[4] AS COL_4
FROM
(
SELECT
TableID,
RowNumber=ROW_NUMBER() OVER (PARTITION BY QuartTile ORDER BY QuartTile),
QuartTile
FROM
(
SELECT
TableID,
QuartTile=NTILE(4) OVER(ORDER BY NEWID())
FROM
Table
)AS Z
)X
PIVOT (AVG(TableID) FOR QuartTile IN([1],[2],[3],[4]) )AS PVT