Hi @Hemal,
Well done on completing this section and for taking it a little further yourself.
Couple of items for you…
Naming Conventions - this is one of those topics that often stirs the emotions of a development community… 
// Use this for initialization
int max;
int min;
int guess;
bool OptionRangeSelected; //flag for range selection
bool ArrowKey; //flag for arrow and enter keys
Here you start off introducing class level variables max, min and guess - note they are camelCase. After that you use two more variables for the bools but the case of these is different (Pascal Case). Minor changes like this can, at a glance, make it a little harder for another developer to understand easily whats going on.
Even if you are only working on your own, maintaining consistency throughout your code / project will invariably help you.
PascalCase / UpperCamelCase are normally used for Property names and Method names within a class, you will have most likely already seen Start() and Update() for example, both of these are methods.
camelCase / lowerCamelCase are normally used for variables.
It can (and often does) get more complicated when different conventions are used for the difference between public and private variables, you may also come across other people’s code which use m_myVaraible or _myVariable at a class level.
The one thing I would urge is consistency, if you have a strong desire to use a different naming convention, just be consistent with it, anyone else who looks at your code will get the idea 
With regards to your methods…
Update() - you want to try to keep methods in general quite small, responsible for as few things as possible, this will definitely come with time and practice. The Update() method, which you could say is fairly core to your game, could easily have more code added to it to do all sorts of things, as that grows it will become really difficult to read, similar/same name variables may get used and all manner of problems start to occur.
What you could do is break your difficulty setting code out into a new method, perhaps called “SetDifficulty” for example, and then call that from the Update() method.
With regards to layout of the code, this is again down to the developer, there are those who may prefer to see this;
if (min == max){ Cheat(); }
else { NextGuess(); }
over this;
if (min == max){
Cheat();
}
else{
NextGuess();
}
Sure, it’s a few lines shorter, but I don’t personally find it any easier to read. Readability and maintainability for your code should be at the fore front of your mind when developing, so again, be consistent. If I open up one of your projects and see you with the second method above, this is how I may expect to see your logic written every time, so keep it consistent and easy for me (again you!).
Comments…
Another topic which will often cause debate… I have heard “only add a comment if it isn’t obvious what it’s doing” been said so many times… that’s fine, if everyone who is looking at the code is of the same familiarity and experience… if I pasted a chunk of code from one of the projects at the end of the course into this topic now, and stripped out all of the comments because I knew what it was doing… that doesn’t necessarily mean you would for example.
Coming from a team background I always wrote my code in such a way that I hoped that anyone looking at it would be able to understand it reasonably easily.
I’m not sure about MonoDevelop, but Visual Studio will help you with commenting your code, if you enter three consecutive comment characters in a row above a property or a method, for example;
\\\
void Start() {
as soon as I hit space after that, Visual Studio will create this above the method
\\\ <Summary>
\\\
\\\ </Summary>
void Start() {
}
If you have methods that taken parameters then it will also cater for these and fill in some of the information for you also.
You can then provide a brief explanation as to what the method is responsible for, or what value it returns etc.
There are tools/plugins that you can use which will use this format of comments to construct full documentation for your project, which can be handy.
Personally, I do not worry about / fear the use of white space or comments in my code, the compiler will strip both of these out completing when building anyway.
It looks like you are probably using MonoDevelop as I can see spaces before the brackets for two of the methods, Start () and Update (), Visual Studio doesn’t tend to do this, again, it doesn’t make any significant difference, but having two styles mixed together is, well, annoying!
again, consistency. 
There’s a little bit of feedback anyway, I hope it is of use 