"Doing better" is in the eye of the beholder.
You are simulating 100 million times, an experiment that only has 10C2*8C2 equally likely outcomes?
Here's a horribly inefficient brute-force way to get 101/315:
Sum[If[a != b && a != c && a != d && b != c && b != d &&
c != d && (Abs[a - b] == 2 || Abs[c - d] == 2), 1, 0], {a, 1,
10}, {b, 1, 10}, {c, 1, 10}, {d, 1, 10}] /
Sum[If[a != b && a != c && a != d && b != c && b != d && c != d , 1,
0], {a, 1, 10}, {b, 1, 10}, {c, 1, 10}, {d, 1, 10}]
It can of course be made much more efficient