As of the census of 2000, there were 28,834 people, 10,629 households, and 7,716 families residing in the village. The population density was 2,151.6 people per square mile (830.8/km²). There were 10,929 housing units at an average density of 815.5/sq mi (314.9/km²). The racial makeup of the village was 82.12% White, 5.06% African American, 0.18% Native American, 8.20% Asian, 0.05% Pacific Islander, 2.15% from other races, and 2.23% from two or more races. Hispanic or Latino of any race were 6.03% of the population. 21.7% were of German, 10.0% Irish, 7.6% Italian, 7.3% Polish and 5.8% English ancestry according to Census 2000.
There were 10,629 households out of which 42.3% had children under the age of 18 living with them, 62.6% were married couples living together, 7.8% had a female householder with no husband present, and 27.4% were non-families. 22.7% of all households were made up of individuals and 6.4% had someone living alone who was 65 years of age or older. The average household size was 2.71 and the average family size was 3.25.
In the village the population was spread out with 30.3% under the age of 18, 5.5% from 18 to 24, 37.2% from 25 to 44, 19.9% from 45 to 64, and 7.2% who were 65 years of age or older. The median age was 34 years. For every 100 females there were 94.0 males. For every 100 females age 18 and over, there were 90.2 males.
According to a 2007 estimate, the median income for a household in the village was $74,455, and the median income for a family was $88,200. Males had a median income of $60,274 versus $38,713 for females. The per capita income for the village was $31,517. About 2.0% of families and 3.0% of the population were below the poverty line, including 2.3% of those under age 18 and 7.9% of those age 65 or over.
Interstate 94 (The Tri-State Tollway) is the main interstate servicing Gurnee, allowing easy access to Milwaukee and Chicago.
Gurnee is notable as being one of the only major Chicago suburbs that is not serviced by Metra, although there are nearby stations in Waukegan, Grayslake, Prairie Crossing, and Libertyville.