Most of Utah addresses by grid. An address like 1200 E 3300 S is a pair of distances rather than a name: twelve blocks east and thirty-three blocks south of a defined zero point. The state's geospatial office describes the machinery precisely — an addressing system is "an origin point (0,0), a north-south axis, and an east-west axis, and a boundary within which addresses are assigned using this particular grid", with quadrants labelled NE, SE, SW and NW and a convention of roughly "100 address ranges per block or 800 address ranges per mile".
The part that catches software out is that this is not one statewide grid. Utah's own dataset catalogues the origins county by county and town by town, because many municipalities run their own: Brigham City, for instance, sets its zero point at Main Street and Forest Street rather than inheriting anyone else's. So a parser that hardcodes Salt Lake City's origin is right in one valley and wrong in the next, and two identical-looking grid addresses in different towns are different places.
For validation the consequence is concrete: a Utah delivery line can consist entirely of numbers and directional letters, with no street name and no suffix at all. A rule shaped like "house number, then a name, then St or Ave" rejects a perfectly ordinary Salt Lake County address. If your form does address parsing rather than storage, Utah is the cheapest place to find that bug.
Worth saying plainly: this generator does not produce grid-style Utah addresses. It pairs a real Utah city and a postal code genuinely issued for it with an invented street name in the ordinary American form. If you specifically need grid fixtures — for a parser test, say — write a handful by hand; that is a five-minute job and a more honest fixture than a generated approximation. What the generator does and does not guarantee is set out on the methodology page.