Question: I have this set of number `a=[1 2 3]`. And I want to put this number randomly into matrix 7 x 1, and number 1 must have 2 times, number 2 must have 3 times and number 3 must have 2 times.
The sequence is not necessary. The answer look like. 
`b=[1 2 2 2 1 3 3]'`

Answer: 
Try [`randperm`](http://www.mathworks.com/help/matlab/ref/randperm.html):

```
a=[1 2 3];
samps = [1 1 2 2 2 3 3]; % specify your desired repeats
samps = samps(randperm(numel(samps))); % shuffle them
b = a(samps)

```

Or, instead of specifying `samps` explicitly, you can specify the number of repetitions for each element of `a` and use `arrayfun` to compute `samps`:

```
reps = [2 3 2];
sampC = arrayfun(@(x,y)x*ones(1,y),a,reps,'uni',0);
samps = [sampC{:}];
samps = samps(randperm(numel(samps))); % shuffle them
b = a(samps)

```
```
%how often each value should occure
quantity=[2,2,3]
%values
a=[1,2,3]
l=[]
%get list of all values
for idx=1:numel(a)
 l=[l,ones(1,quantity(idx))*v(idx)]
end
%shuffle l
l=l(randperm(numel(l)))

```