The assumption of Gaussian surfaces has been widely used in theoretical studies of tribology, while various machining methods produce different types of rough surfaces, including non-Gaussian surfaces. In the present study, a new method that combines the fractal theory, Weibull distribution and genetic algorithm (GA) is presented to generate non-Gaussian rough surfaces. The results show that the method can generate surfaces with a wide range of specified kurtosis and skewness by using proper combination of GA parameters, covering basically all engineering surfaces. The generated surfaces exhibit good agreement with real engineering rough surfaces measured experimentally. Compared with the surfaces generated by the FFT-based method, the surfaces generated by the present method are more realistic and cover wider range of topography.