codestorm: try Simple Sudoku. Generates puzzles for you, and you can enter puzzles from teh intarweb, and does all the legwork of maintaining candidate lists, turning moderately complex sudokus from a frustrating exercise in keeping track of potential numbers back to the fun logic puzzle it was meant to be.

OP: generating and solving sudokus are two completely different tasks. Probably best to work on a solver first, then once you've got the hang of that, turn the rules round to make a generator. You can generate them randomly, but it's probably more efficient in the long run to use the rules "backwards" to generate a puzzle.