num[1] = a
num[2] = b

oneNewLinDepVec[lov_] := Sum[num[i]lov[[i]],{i,1,Length[lov]}]

oneNewLinDepVec[lov_] := Sum[RandomReal[{-10,10}]lov[[i]],{i,1,Length[lov]}]

ranmat = RandomReal[{-1,1},{2,3}]

ranmat[[1]]

Length[ranmat]

Dimensions[ranmat]

oneNewLinDepVec[ranmat]//MatrixForm

addOneLinDep[lov_] := Append[lov,oneNewLinDepVec[lov]]

test = addOneLinDep[ranmat]

Length[NullSpace[test]]

MatrixRank[test]

nullityMatrix4[null_] := 
Module[{start,nulllist},
start= RandomReal[{-10,10},{4-null,4}];
nulllist= Table[oneNewLinDepVec[start],{i,1,null}];
Join[start,nulllist]
]

test=nullityMatrix4[1]

THis code would work if it ran for an infinite amount of time.... here is an explanation why...

MatrixRank[test]