The annealing approach was a bit over my head, but I was able to come up with a solution that seems to work well for the numbers I'm working with and that may be within reach of others who find this post.
The key was to use a random shuffle of the list rather than trying to walk through the permutations systematically, which becomes impossible for numbers as big as a typical class.
I ran this with a deck of 26 being shuffled and was able to generate 19 pairs in a few minutes. Here's the output, with the number of iterations the loop has been through printed for good measure:
Iterations: 1
Set 0 : [(15, 24), (25, 7), (22, 12), (0, 3), (14, 13), (20, 23), (8, 18), (19, 6), (9, 5), (17, 2), (21, 16), (10, 11), (1, 4)]
Iterations: 2
Set 1 : [(0, 2), (25, 3), (20, 15), (7, 11), (5, 10), (17, 16), (4, 23), (24, 8), (6, 9), (1, 13), (22, 14), (12, 21), (19, 18)]
Iterations: 4
Set 2 : [(8, 0), (14, 19), (17, 1), (7, 3), (15, 11), (10, 21), (9, 18), (4, 12), (23, 5), (24, 2), (22, 6), (13, 20), (16, 25)]
Iterations: 8
Set 3 : [(3, 24), (15, 6), (16, 1), (22, 20), (25, 21), (10, 18), (19, 5), (17, 14), (7, 23), (13, 4), (0, 11), (9, 2), (12, 8)]
Iterations: 9
Set 4 : [(18, 21), (11, 22), (20, 16), (23, 2), (7, 10), (24, 0), (4, 9), (17, 25), (19, 8), (12, 3), (15, 5), (6, 13), (1, 14)]
Iterations: 23
Set 5 : [(1, 7), (20, 3), (8, 22), (23, 0), (15, 21), (14, 6), (18, 5), (9, 25), (19, 13), (12, 17), (16, 4), (24, 11), (10, 2)]
Iterations: 32
Set 6 : [(20, 2), (1, 12), (19, 25), (18, 3), (24, 7), (5, 6), (11, 4), (8, 16), (9, 22), (13, 21), (0, 17), (10, 14), (23, 15)]
Iterations: 66
Set 7 : [(1, 6), (25, 2), (15, 3), (24, 9), (10, 4), (18, 13), (14, 23), (8, 5), (11, 21), (16, 19), (17, 20), (22, 7), (0, 12)]
Iterations: 88
Set 8 : [(25, 5), (21, 14), (10, 24), (17, 9), (1, 23), (8, 13), (0, 4), (18, 22), (12, 15), (6, 3), (20, 19), (16, 11), (2, 7)]
Iterations: 469
Set 9 : [(19, 22), (5, 16), (17, 13), (6, 2), (15, 9), (20, 0), (11, 14), (3, 23), (21, 24), (18, 25), (12, 7), (1, 10), (4, 8)]
Iterations: 877
Set 10 : [(8, 9), (16, 3), (2, 11), (17, 23), (7, 4), (14, 15), (12, 10), (20, 24), (21, 19), (6, 18), (22, 25), (1, 0), (13, 5)]
Iterations: 1363
Set 11 : [(20, 5), (6, 12), (16, 18), (9, 14), (0, 19), (1, 2), (17, 10), (13, 22), (25, 15), (3, 11), (4, 24), (7, 8), (21, 23)]
Iterations: 7435
Set 12 : [(18, 12), (11, 13), (9, 16), (5, 4), (8, 6), (25, 20), (14, 7), (19, 24), (10, 0), (17, 21), (15, 1), (3, 2), (22, 23)]
Iterations: 12008
Set 13 : [(4, 25), (5, 14), (12, 2), (19, 3), (18, 17), (23, 10), (1, 24), (15, 16), (20, 8), (21, 7), (13, 9), (6, 11), (22, 0)]
Iterations: 23082
Set 14 : [(14, 25), (6, 7), (5, 1), (18, 0), (22, 24), (19, 2), (23, 16), (11, 20), (21, 4), (12, 9), (13, 15), (17, 8), (10, 3)]
Iterations: 24293
Set 15 : [(22, 1), (6, 4), (16, 14), (15, 10), (7, 17), (24, 23), (2, 18), (25, 8), (11, 19), (21, 20), (0, 13), (3, 9), (5, 12)]
Iterations: 218369
Set 16 : [(12, 11), (9, 7), (4, 18), (10, 16), (5, 2), (24, 13), (19, 17), (23, 8), (14, 20), (6, 21), (15, 22), (0, 25), (1, 3)]
Iterations: 1080700
Set 17 : [(11, 9), (16, 6), (13, 7), (15, 17), (0, 21), (10, 8), (22, 2), (1, 25), (12, 23), (14, 3), (18, 20), (4, 19), (24, 5)]
Iterations: 6746593
Set 18 : [(23, 18), (15, 7), (17, 3), (25, 24), (22, 5), (12, 19), (1, 21), (4, 14), (11, 8), (9, 10), (13, 2), (20, 6), (0, 16)]
The number of iterations goes up dramatically over time, but it's within workable limits.
Since this solution relies on a random shuffle, there's also some variability in the results. For example, when looking for a class set of 12, I find that some runs appear to get into an impossible corner, where others quite quickly get all 11 possible sets, as the one below did:
Iterations: 1
Set 0 : [(6, 1), (7, 9), (11, 4), (10, 3), (8, 2), (5, 0)]
Iterations: 2
Set 1 : [(1, 3), (10, 11), (9, 8), (5, 7), (0, 6), (2, 4)]
Iterations: 4
Set 2 : [(2, 10), (7, 8), (4, 6), (5, 11), (3, 9), (1, 0)]
Iterations: 15
Set 3 : [(9, 10), (4, 1), (8, 5), (7, 11), (6, 2), (3, 0)]
Iterations: 17
Set 4 : [(11, 9), (8, 1), (6, 5), (7, 3), (4, 10), (0, 2)]
Iterations: 21
Set 5 : [(4, 3), (7, 1), (2, 11), (9, 5), (6, 8), (0, 10)]
Iterations: 38
Set 6 : [(10, 7), (4, 0), (9, 6), (11, 8), (2, 1), (5, 3)]
Iterations: 241
Set 7 : [(4, 7), (11, 3), (9, 2), (0, 8), (6, 10), (5, 1)]
Iterations: 806
Set 8 : [(9, 1), (3, 2), (4, 5), (8, 10), (11, 6), (0, 7)]
Iterations: 1660
Set 9 : [(8, 3), (2, 5), (11, 0), (9, 4), (7, 6), (1, 10)]
Iterations: 9236
Set 10 : [(0, 9), (2, 7), (5, 10), (3, 6), (8, 4), (11, 1)]
Best Answer
There are $\binom{m}2$ pairs of students, and each project takes care of $\binom{n}2$ pairs. Therefore, at least $$\binom{m}2\Big/\binom{n}2=\frac{m(m-1)}{n(n-1)}$$ days are necessary.
If this ratio is an integer, then a schedule which attains is called a Steiner system $S(2,n,m)$. We know that $S(2,q,q^2+q)$ and $S(2,q+1,q^2+q+1)$ exist for any prime power $q$. Furthermore, $S(2,3,6k+1)$ and $S(2,3,6k+3)$ exist for all $k\ge 1$. See here for more details on what is known about the existence of Steiner systems.
We can get an upper bound on the length of an optimal schedule using the probabilistic method. Suppose you randomly choose a $d$ day schedule. The probability a particular pair of people is not chosen is $\Big(1-\binom{m-2}{n}/\binom{m}n\Big)^d=\Big(1-\frac{(m-n)(m-n-1)}{m(m-1)}\Big)^d$. Therefore, the probability that at least one pair of students is not chosen is at most $$ \binom{m}2\Big(1-\frac{(m-n)(m-n-1)}{m(m-1)}\Big)^d $$ If you choose $d$ large enough so that quantity is less than $1$, then it means there is a positive probability that a random $d$ day schedule works, so that in particular it can be done in $d$ days. Being very rough, if we let $x=\frac{m(m-1)}{(m-n)(m-n-1)}$, then this is $\binom{m}2 (1-\frac1{x})^{x\cdot d/x}\approx \binom{m}2e^{-d/x}$, so this is satisfied when $$d\gtrsim x\log\binom{m}2\approx \frac{m(m-1)}{(m-n)(m-n-1)}\times 2\log m.$$