declare @t (row int indentity,key varchar(30)),@n int
insert @t(key) select key from table2
set @n=@@identity
insert table1 (foreignkey1,foreignkey2,foreignkey3,foreignkey4)
select
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey1
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey2
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey3
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey4
insert @t(key) select key from table2
set @n=@@identity
insert table1 (foreignkey1,foreignkey2,foreignkey3,foreignkey4)
select
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey1
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey2
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey3
(select key from @t where row=cast(rand()*@n+1 as int) foreignkey4
(foreignkey1,2,3,4)
SELECT TOP 4 key
FROM [table2]
group by key