I think this does what you want:
%// Data
transmitted = [ 0 3 2 1 3 2 ]; %// sequence of transmitted symbols. Example data
M = 4; %// alphabet size
p = .3; %// symbol error probability
%// Generate received sequeence
n = numel(transmitted); %// sequence size
received = transmitted; %// no errors for for now
ind = rand(1,n)<=p; %// index of symbols with error
changes = randi(M-1,1,nnz(ind)); %// changes to be applied for symbols with error
received(ind) = mod(received(ind)+changes,M); %// apply changes