So you need two thing. Six matrices and and a cube with each side painted with a matrix. In such wall painting Texture
is the most handy option. Let me show an example.
n = 3; (*Matrix Dimension*)
color = {Red, Blue, Green, Yellow, Orange, White};
Table[mat[k] =
Grid[Table[RandomInteger[{1, n^2}], {i, 1, n}, {j, 1, n}],
Frame -> All,
ItemStyle -> Directive[FontSize -> 20, Bold],
Background -> Table[RandomChoice[color], {i, 1, n}, {j, 1, n}]],
{k, 1, 6}];
You can choose your matrix and style as you wish. Now I am going to make a cube using Polygon
and I will use these matrices as wallpaper.
vtc = {{0, 0}, {1, 0}, {1, 1}, {0, 1}}; (*VertexTextureCoordinates*)
coords = {{{0, 0, 0}, {0, 1, 0}, {1, 1, 0}, {1, 0, 0}},
{{0, 0,0}, {1, 0, 0}, {1, 0,1},{0, 0, 1}},
{{1, 0, 0}, {1, 1, 0}, {1,1, 1}, {1, 0, 1}},
{{1, 1, 0}, {0, 1, 0}, {0, 1, 1},{1, 1,1}},
{{0, 1, 0}, {0, 0, 0}, {0, 0, 1}, {0, 1, 1}},
{{0, 0,1}, {1, 0, 1}, {1, 1, 1},{0, 1, 1}}};
Graphics3D[Table[{Texture[mat[k]],Polygon[coords[[k]], VertexTextureCoordinates -> vtc]},{k, 1, 6}], Boxed -> False]
Tada, your cube is served.
Answer for modified question
You just make the job simpler.
n = 3;(*Matrix Dimension*)
color = {Red, Blue, Green, Yellow, Orange, Black};
Table[mat[k] = Grid[Table[RandomInteger[{1, n^2}], {i, 1, n}, {j, 1, n}], ItemStyle -> Table[{FontSize -> 20, Bold, RandomChoice[color]}, {i, 1, n}, {j,1, n}], Frame -> All], {k, 1, 6}];
(*For 2D visual*)
Grid[{{, mat[6], ,}, {mat[4], mat[1], mat[2], mat[3]}, {, mat[5], ,}},Frame -> None, Spacings -> {0.1, 0.1}]
(*For 3D visual*)
Graphics3D[Table[{Texture[mat[k]],Polygon[coords[[k]], VertexTextureCoordinates -> vtc]},{k, 1, 6}], Boxed -> False]
(*use the same coords and vtc as before*)
This time instead of using Graphics3D
with that large coordinate set, I'm simply using a Grid
to create the output in a order you suggested.
Anyway I put both the outputs (just in case you want to play in higher dimension :) ).