In general, yes: use lazy for calculating expensive values that might never be needed. In this case though, the cost of using lazy (the delegate, the anonymous class, ...) probably outweigh the cost of just creating the range normally, ie.
val rowNumbers = 1 .. nRow
.