MATLAB: How to create an array of randomized pairs of numbers

arrayscolor

So I am working on creating a version of the memory card game where you have say a 4×4 array of tiles, and each one has a matching pair within the array. I am using 8 different colors and 2 tiles for each color. How could I create a random 4×4 array that would only contain the numbers 1 through 8 but each one only 2 times? I assume I'd use randi. I know my title is quite confusing but I couldn't think of an easier description without telling why I needed it. Thank you!

Best Answer

tiles = [1:8, 1:8];
tiles = reshape( tiles(randperm(length(tiles))), 4, 4);