A word search is easy to generate and surprisingly easy to generate badly. The grid fills, the words are all there, and the puzzle is still no fun because every word runs left to right and the filler letters give the answers away.
This generator places your word list across the available directions, then fills the remaining cells with letters chosen to avoid accidentally spelling your answers somewhere you did not intend. It produces the puzzle and its solution grid together.
Difficulty comes from three things you control: how large the grid is relative to the word count, whether words may run backwards and diagonally, and whether words are allowed to cross. A themed list of fifteen words in a 15 by 15 grid with all directions enabled is a genuinely hard puzzle; the same list in a 20 by 20 grid horizontal-only is a warm-up.
Enough room for the longest word in the hardest direction you allow, with space left for filler. Too tight and words fail to place; too loose and the puzzle becomes trivial because words sit isolated in empty space.
For adult puzzlers, yes. Restricting to horizontal and vertical produces a puzzle most solvers finish quickly. For children's books the restriction is usually the point.
Crossing words is what makes a grid feel dense rather than sparse, and it makes filler letters harder to distinguish from answers. It generally raises difficulty.