Rough scetch, assuming Bob is standing next to you in the same room:
- Prepare cards with the correct numbers on them
- Lay down the cards according to the setup, face up
- Lay down the remaining cards with the correct solution, face down, so that Bob can't see them.
Now you let Bob choose one column, row or sector.
- You pick up the cards in that row, column or sector, still not showing them to Bob (turn around face-up cards if there are any), and start shuffling them.
- Hand them to Bob, who can see if the cards have the correct numbers (1-9 in the standard game).
After shuffling, Bob can't see any more which card was in which position, he just knows that the set of cards is the correct one. If the face down solution is correct, this will always work out correctly. If you don't know the actual solution, there is a nonnegligible probability to be caught cheating. The chance for catching cheating is quite low tho, so you need to do many repetitions of this to achieve an overall acceptable probability.
All of the processes can be done cryptographically, e.g. face down cards can realized by commitments, shuffling is known from MPC, mix nets, etc.
Alternative solution from this blog:
Apply a permutation to the numbers, then you don't need shuffling. However, then you need to prove that the solution actually fits the setup of fixed numbers under that permutation. Therefore, Victor can also choose to see the permuted original puzzle.