Apenas um detalhe na função para inserir produtos aleatórios é que seria interessante colocar uma verificação se ainda há produtos disponíveis para serem adicionados. Pois vamos supor que existam menos de 10 produtos cadastrados na tabelas produtos e a quantidadee aleatória seja de 10. A função entrará em loop infinito.
Um exemplo de código para esta verificação seria:
IF NOT EXISTS (SELECT CODIGO FROM PRODUTOS WHERE CODIGO NOT IN (SELECT PRODUTO FROM @TABELA))
BEGIN
PRINT('Não há produtos suficientes cadastrados')
BREAK
END