Q:

How can i fill 2 dimensional array with unique random numbers

How can I fill 2 dimensional array with unique random numbers (different numbers in a row/colum)?
I have already done it for 1 dimensional array:
class Program
{
    static void Main(string[] args)
    {
        Random r = new Random();

        int[] x = new int[10];

        for(int i = 0; i < x.Length; i++)
        {
            x[i] = r.Next(9);

            for(int j = 0; j < i; j++)
            {
                if(x[i] == x[j])
                {
                    i--;
                    break;
                }
            }
        }

        for(int i = 0; i < x.Length; i++)
        {
            Console.WriteLine(x[i]);
        }

        Console.ReadKey();
    }
}

A:

Since you don't want any duplicates, using Random repeatedly until you have one of each is not the best approach. Theoretically, an algorithm like that could run for a very long time, if the randomizer does not provide the desired values early on.
Since you know what values you want, but want them in a random order, a shuffle algorithm is usually a better approach. 
A shuffle algorithm would allow you to generate an array of the desired values and then shuffle them to get them in random order.
The easiest way to get it working for multidimensional arrays, would probably be to have all the desired values in a one-dimensional array first, shuffle it and then convert the array into a multidimensional array.
However, it is possible to generalize a shuffling algorithm to work on multidimensional arrays.
An example of how the code would look like is provided in the referenced answers.

