When you're in competition, this cannot be assumed. You'll each bias the numbers you come up with towards your preferred outcome. Even with A + B mod N, you can still bias the results when you know what your opponent is trying for.
A fairer approach would be to make a long series of randomized values. Your opponent secretly chooses a starting offset, and you pick an offset to add.
So for 1d6:
2 5 1 3 6 4
4 3 5 2 1 6
5 6 3 4 2 1
1 4 3 2 5 6
3 1 2 6 4 5
You don't need a ton of rows. Each possible roll value must appear once in each row.Your opponent places a marker on one of those numbers and keeps that information hidden.
- Let's say they choose the "1" at row=2, col=5.
Now you pick a number from 1 to 6.
- Let's say you choose 5.
Now they reveal where the marker is set (row=2, col=5).
Now you advance from the marker by 5 (wrapping around in the row if necessary).
- so from row=2, col=5, you advance by 5 like so: 6, (wrap) 4, 3, 5, 2 (ending at row=2, col=4).
You "rolled" a 2.