Mapping Surfaces

I understand better now, when you select unwrap, have you gone into your mesh and selected the edges you wish to become the seams where the UV will be split? That will make a lot of difference. in your picture, there would be a seam around the top edge, and bottom edge of the seat as well as at least on vertical on the edge face ( back center for example) for the edge of the seat. As to why it places them in random locations and random sizes is it is basically a surface projection and not FLATTENED or UNROLLED. I see from your image there is a texture image on screen that at sometime you used to edit the UV and it will also try to fit the UV to the size and shape of the bounds when you layout the place mark for the UV.
Here I selected the seams I wished,


Here is the result on the UV square that I designated ( far to large BTW ) of the seam selection, and on the left side of the right viewport the result of the same area flattened…

… and a poor render of the end result

there is a great tutorial video on U-tube… for more in-depth UV and texturing…
UV Mapping in V5

but I would also ask, would it not be just as easy for you to just assign a standard material to this as it is such a simple object?