Creating random maze in Go
General notes:


the code would benefit from splitting it into more methods,
go uses camelCaseConvention, not onlylowerletters.


Now, some particulars.

stack = append(stack, room{0, 0})


You can use start variable here.

func (r room) neighbors() []room {


In this function, it'd be more idiomatic to use switch { ... } instead of sequence of ifs. Same for the if-elses in the main().

Also it may be more efficient to have a single global re-used [4]room array and have neighbors/nonvisitedneighbors returns slices on it instead of make-ing a new one each call.