Moving random elements in array to random indexes - JAVA

I have an array, this is generated according to the user; entering 200; will give him 200 numbers. These numbers are supposed to be semi sorted. To achieve this i created a random array, then sorted it.

But now the problem is; its supposed to be semi sorted; for example;
My code generates me an array of size 8. [1,2,3,4,5,6,7,8]... NO PROBLEM HERE!

PROBLEM HERE --> What the code should ideally do? -- User puts in the amount of numbers he wants to move around. E.g. 2, this means he wants 2 random numbers to be moved randomly in the array.

So, code should pick two random number from that array, and place it randomly anywhere. for example, it picks [..,7,], and it places it randomly in front of [..3], so array should now be; [1,2,7,3,4,5,6,8]... then it picks [,5] and randomly insert it in first index [5,1,2,7,3,4,5,6,8]... THIS IS SEMI SORTED..

PROBLEM - I do not understand how to move it in front of random element. All my code does is swaps the elements, so we get [1,2,7,4,5,6,3,8] after first iteration. I do not want to swap. I need help moving random numbers picked up in array moving randomly.

Before you write code, you need to come up with an algorithm or design describing what the code will do.
What do you have for a design? If you were to do it manually with a row of playing cards, how would you do it?

ChrisPadgham sort of has the right idea.
What you actually want to do is (in the first example),
swap the 7 with the preceeding element in the array (in a loop),
until you get in front of the 3.
You will also have to account for going in the other direction as well.

hxf642 - Since you know you are going to place the 7 before 3 there is no need to ripple it down as you suggest. It will work but it is unnecessary processing. It is faster and less code just to move 3-6 up one spot and insert 7 where 3 was.