marrant, tout le monde utilise cet algo en ce moment pour ça...
Pour générer une grille de départ, tu pourrais remplir quelques cases aléatoirement, puis tu résout intégralement le sudoku si possible. S´il y a plusieurs solution, tu rajoutte des cases dans tes conditions de départ (et vice versa s´il n´y en a pas).
Jusqu´à arriver à une conditions de départ qui ne permet de trouver qu´une seule solution.
A ce moment là, tu peut enlever de ta conditions de départ le plus de case possible mais en permettant quand même de résoudre le sudoku.
Pour évaluer la difficulté du jeu, ce que je fait c´est de compté le nombre d´hypothèse que doit faire le logiciel pour résoudre la grille. Bien sûr c´est pas terrible car les heuristique que j´utilise sont assez mauvaise donc mon programme fait bien plus d´hypothèse que l´humain le plus stupide, mais c´est quand même une approximation de la difficulté.