Hi,
your program will be very easy to program. I could generate a function that if is called for the first time will evaluate the random numbers, the numbers will be saved in a file, and also returned to the caller function. We it is called again it will get the values from the saved file. In case more columns or raws need to be evaluated they will be evaluated and saved again in the file.
Another option could be the case that matrixes with different dimension could be completely different, so one version matrix of every size will be saved in a file. This will require more space in disc. If a matrix with defined dimension has not been evaluated, it will be evaluated and saved in a file. If the dimensions have been evaluated before they will be obtained from the file.
Hope you choose me, I am very good at doing things in Matlab.
Best,
Juan Miranda