One way to do this is with BitXor, e.g., label your people 0,1,2,...15 and then at week n the ith person is paired with
BitXor[i,n]
This is symmetric for each week n, i.e. when the formula assigns x to y it also assigns y to x, because Xor[a,b]==c means that Xor[c,b]==a. Also, each person gets a different assignment each week because BitXor[i,n]==BitXor[j,n] only when i==j,