You need to add something from the main query so the subquery gets recalculated for each row - ie:
SELECT
ProdCode,
ProdName,
(
SELECT TOP 1 ItemCode
FROM items
WHERE items.Assortment IN (102) AND itemcode <> products.ProdCode
ORDER BY NEWID(), products.ProdCode
)
FROM Products
WHERE ProductGroup IN (102)