@Didymos Thomas,
Boolos provided his solution in the same article in which he introduced the puzzle. Boolos states that the "first move is to find a god that you can be certain is not Random, and hence is either True or False".[1] There are many different questions that will achieve this result. One strategy is to use complicated logical connectives in your questions (either biconditionals or some equivalent construction).
Boolos' question was to ask A:
Does da mean yes iff you are True iff B is Random?[1]
Equivalently:
Are an odd number of the following statements true: you are False, da means yes, B is Random?
It was observed by Roberts (2001) -- and independently by Rabern and Rabern (2008) -- that the puzzle's solution can be simplified by using certain counterfactuals.[3][4] The key to this solution is that, for any yes/no question Q, asking either True or False the question
If I asked you Q, would you say ja?
results in the answer ja if the truthful answer to Q is yes, and the answer da if the truthful answer to Q is no (Rabern and Rabern (2008) call this result the embedded question lemma). The reason it works can be seen by looking at the eight possible cases.
Assume that ja means yes and da means no.
True is asked and responds with ja. Since he is telling the truth, the truthful answer to Q is ja, which means yes.
True is asked and responds with da. Since he is telling the truth, the truthful answer to Q is da, which means no.
False is asked and responds with ja. Since he is lying it follows that if you asked him Q he would instead answer da. He would be lying, so the truthful answer to Q is ja, which means yes.
False is asked and responds with da. Since he is lying it follows that if you asked him Q he would in fact answer ja. He would be lying, so the truthful answer to Q is da, which means no.
Assume ja means no and da means yes.
True is asked and responds with ja. Since he is telling the truth, the truthful answer to Q is da, which means yes.
True is asked and responds with da. Since he is telling the truth, the truthful answer to Q is ja, which means no.
False is asked and responds with ja. Since he is lying it follows that if you asked him Q he would in fact answer ja. He would be lying, so the truthful answer to Q is da, which means yes.
False is asked and responds with da. Since he is lying it follows that if you asked him Q he would instead answer da. He would be lying, so the truthful answer to Q is ja, which means no.
Using this fact, one may proceed as follows.[3]
Ask god B, "If I asked you 'Is A Random?', would you say ja?". If B answers ja, then either B is Random (and is answering randomly), or B is not Random and the answer indicates that A is indeed Random. Either way, C is not Random. If B answers da, then either B is Random (and is answering randomly), or B is not Random and the answer indicates that A is not Random. Either way, A is not Random.
Go to the god who was identified as not being Random by the previous question (either A or C), and ask him: "If I asked you 'Are you True?', would you say ja?". Since he is not Random, an answer of ja indicates that he is True and an answer of da indicates that he is False.
Ask the same god the question: "If I asked you 'Is B Random?', would you say ja?". If the answer is ja then B is Random; if the answer is da then the god you have not yet spoken to is Random. The remaining god can be identified by elimination.
[edit]Random's behavior
Most readers of the puzzle assume that Random will provide completely random answers to any question asked of him; however, Rabern and Rabern (2008) have pointed out that the puzzle does not actually state this.[3] And in fact, Boolos' third clarifying remark explicitly refutes this assumption.
Whether Random speaks truly or not should be thought of as depending on the flip of a coin hidden in his brain: if the coin comes down heads, he speaks truly; if tails, falsely.
This says that Random randomly acts as a false-teller or a truth-teller, not that Random answers randomly.
A small change to the question above yields a question which will always elicit a meaningful answer from Random. The change is as follows:
If I asked you Q in your current mental state, would you say ja?[3]
This effectively extracts the truth-teller and liar personalities from Random and forces him to be only one of them. By doing so the puzzle becomes completely trivial, that is, truthful answers can be easily obtained.
Ask god A, "If I asked you 'Are you Random?' in your current mental state, would you say ja?"
If A answers ja, then A is Random: Ask god B, "If I asked you 'Are you True?', would you say ja?"
If B answers ja, then B is True and C is False.
If B answers da, then B is False and C is True. In both cases, the puzzle is solved.
If A answers da, then A is not Random: Ask god A, "If I asked you 'Are you True?', would you say ja?"
If A answers ja, then A is True.
If A answers da, then A is False.
Ask god A, "If I asked you 'Is B Random?', would you say ja?"
If A answers ja, then B is Random, and C is the opposite of A.
If A answers da, then C is Random, and B is the opposite of A.