Sudoku is a number placement mathematical puzzle based on logic. The purpose of this paper is to discuss suitablemodels and algorithm to generate Sudoku puzzles of varying difficulty. It is generally recognized that hand-made puzzlesare more enjoyable than those generated by computer. Our goal is to establish models to generate Sudoku puzzles ofvarying difficulty, which are as enjoyable as hand-made ones. As we believe that puzzles generated by simulating thedesign process of hand-made ones will also be of much enjoyment, we established our first model -No Brute-Force.Brute-Force technique is excluded from this algorithm, for there is no enjoyment in solving puzzles using it. We haveimplemented the algorithm with a JAVA program. We conclude that it is possible and reasonable to generate Sudokupuzzles of varying difficulty as enjoyable as hand-made ones.