Effectively, `{a,b}=...` sets both `a` and `b` simultaneously to the corresponding elements of the right side (see [`Set`](https://reference.wolfram.com/language/ref/Set.html)). So for example:

    {a, b} = {1, 2};
    
    a
    (* 1 *)
    
    b
    (* 2 *)

Now, in your example, we can look at what the function (the `(...)&`, see also [`Function`](https://reference.wolfram.com/language/ref/Function.html)) gets as argument using [`Echo`](https://reference.wolfram.com/language/ref/Echo.html):

    u = RandomReal[{0, 1}, {3, 5}];
    v = Map[({x, y, z, a, b} = Echo@#; {x, y, z, a, b, 1 - a - b}) &, u]
    
    (* {0.524485,0.374012,0.209276,0.447658,0.534618} *)
    (* {0.945336,0.0270697,0.206729,0.00877572,0.881564} *)
    (* {0.725822,0.263445,0.160514,0.247397,0.798175} *)
    (* {{0.524485, 0.374012, 0.209276, 0.447658, 0.534618, 
      0.0177245}, {0.945336, 0.0270697, 0.206729, 0.00877572, 0.881564, 
      0.10966}, {0.725822, 0.263445, 0.160514, 0.247397, 
      0.798175, -0.0455723}} *)

So it just gets one row from the 20x5 matrix, as expected. This now means that `{x,y,z,a,b}` get set to those 5 values. The second part is then the result of the function, so using the just set values for `a,b,x,y,z`, we compute the list `{x,y,z,a,b,1-a-b}`. This is then returned from the function (see also [`CompoundExpression`](https://reference.wolfram.com/language/ref/CompoundExpression.html)).

That being said, I would have rewritten the line as follows:

    v = Apply[Function[{x, y, z, a, b}, {x, y, z, a, b, 1 - a - b}], u, {1}];

This applies (see [`Apply`](https://reference.wolfram.com/language/ref/Apply.html)) the function taking 5 arguments (called `x,y,z,a,b`) to each row of the matrix, and then computes the same expression as before. I just find it a lot more explicit in what's going on, and it doesn't needlessly modify global variables.

The third line follows the same logic, so we can use a similar strategy to rewrite it for improved readability:

    w = Take[Select[v, Apply@Function[{x, y, z, a, b, c}, x^2 + y^2 + z^2 <= 1 && x + y - 1 <= z <= -x + y + 1 && z >= -x - y - 1]], 3]

Notice here that I used the operator form of [`Apply`](https://reference.wolfram.com/language/ref/Apply.html). This effectively converts the function `Function[{x,y,z,a,b,c},...]` which takes 6 arguments into a function that takes a list of length 6 as a single argument. This is required since select will pass the lists of length 6 as a single argument to the filter criterion. The `Apply` then effectively splits this list into separate arguments.