Estoy seguro de que un enfoque más riguroso es posible, pero pensando en esto intuitivamente:
Si tiramos dos dados, hay 6x6=36 resultados posibles. De 0 a 35 es un rango de 36 resultados posibles. Por lo tanto, la solución debe implicar exactamente una combinación de la tirada de los dados para cada resultado: no podemos tener 2,1 y 1,2 ambos mapeando al mismo valor, por ejemplo.
Así que me imagino una tabla bidimensional con 6 filas y 6 columnas, en la que cada celda de la tabla tiene un número diferente, del 0 al 35. La primera fila sería del 0 al 5, la segunda del 6 al 11, y así sucesivamente. Todos los números del 0 al 35 aparecen. Cada número ocurre exactamente una vez, es decir, cada número representa exactamente una combinación de la tirada de dos dados, por lo que todos tienen la misma probabilidad.
Podría generar el primer número de cada fila restando uno a la tirada del dado y luego multiplicando por 6. O, si lo prefiere, multiplicar por 6 y luego restar 6. Para el desplazamiento de la columna tomo el segundo dado menos 1. Es decir:
S=(d x 6 - 6) + (e - 1)
o
S=d x 6 + e - 7