This is what I figured out to sort resolutions, I am also asuming that my user base will have at least 1024*768
(as its the windows default settings and I wanted a 3d objects menu for my game what gave problems with to low resolutions)
function Awake()
{
resolutions = Screen.resolutions;
}
... and in my gui:
// RESOLUTIONS
GUI.Label (Rect (100, 150 , 180, 20), "Availeble display resolutions: " );
// Widescreen
GUI.Label (Rect (150, 170 , 100, 30), "Widescreen: " );
GUILayout.BeginArea (Rect (150,210,100,600));
for (var res in resolutions)
{
if(res.width /16 == (res.height/10 || res.height/9 ) res.width >= 1024)
{
resDimensions = res.width.ToString() + "x" + res.height.ToString();
//if (GUILayout.Button(resDimensions, GUILayout.Width (100)))
if (GUILayout.Button(resDimensions))
{
selectedWidthRes = res.width;
selectedHeightRes = res.height;
}
}
}
GUILayout.EndArea();
// 4 x 3 resolution
GUI.Label (Rect (350, 170 , 100, 30), "4 x 3: " );
GUILayout.BeginArea (Rect (350,210,100,600));
for (var res in resolutions)
{
if(res.width/4 == (res.height/3) res.width >= 1024)
{
resDimensions = res.width.ToString() + "x" + res.height.ToString();
if (GUILayout.Button(resDimensions))
{
selectedWidthRes = res.width;
selectedHeightRes = res.height;
}
}
}
GUILayout.EndArea();
// no standard resolution.
GUI.Label (Rect (550, 170 , 100, 30), "Other: " );
GUILayout.BeginArea (Rect (550,210,100,600));
for (var res in resolutions)
{
if((res.width /16 != (res.height/10 || res.height/9) (res.width/4 != (res.height/3))) res.width >= 1024)
{
resDimensions = res.width.ToString() + "x" + res.height.ToString();
if (GUILayout.Button(resDimensions))
{
selectedWidthRes = res.width;
selectedHeightRes = res.height;
}
}
}
GUILayout.EndArea();
The tabs are a bit large on the forum, so probably copy paste this so its more readable 
selectedWithRes and selectedHeightRes are used for a location in the vgui where I display the current resolution setting.
and with a save button the resolution is updated:
Screen.SetResolution (selectedWidthRes, selectedHeightRes, fullScreenTog);
I make the game detect if its the first time launch, and show a setup screen where the players can set their name, quality and resolution, and save it into player prefs.
To see if its a first time launch I check if the player perfs exist.
I would also like to know if its possible to detect the desktop resolution, so I can match it in the game.